Skip to content

Commit d052fcc

Browse files
2 parents aba6619 + b354c98 commit d052fcc

1 file changed

Lines changed: 58 additions & 70 deletions

File tree

README.md

Lines changed: 58 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,12 @@
66
<p>
77
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
88
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.9+-brightgreen.svg" alt="Python 3.9+"></a>
9-
<a href="#"><img src="https://img.shields.io/badge/Status-Active-success.svg" alt="Project Status: Active"></a>
10-
<a href="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/stargazers"><img src="https://img.shields.io/github/stars/prathameshnium/PICA-Python-Instrument-Control-and-Automation?style=social" alt="GitHub Stars"></a>
11-
<a href="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/network/members"><img src="https://img.shields.io/github/forks/prathameshnium/PICA-Python-Instrument-Control-and-Automation?style=social" alt="GitHub Forks"></a>
129
<a href="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/actions/workflows/joss_tests.yml"><img src="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/actions/workflows/joss_tests.yml/badge.svg" alt="Run PICA JOSS Tests"></a>
1310
<a href="https://codecov.io/gh/prathameshnium/PICA-Python-Instrument-Control-and-Automation"><img src="https://codecov.io/gh/prathameshnium/PICA-Python-Instrument-Control-and-Automation/branch/main/graph/badge.svg" alt="codecov"></a>
1411
<a href="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/actions/workflows/codeql.yml"><img src="https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation/actions/workflows/codeql.yml/badge.svg" alt="CodeQL"></a>
1512
</p>
1613
</div>
14+
1715
---
1816

1917
## Overview
@@ -22,7 +20,7 @@
2220

2321
A key architectural feature is the use of isolated process execution for each measurement module via Python's `multiprocessing` library, ensuring high stability and preventing inter-script conflicts. This platform is built to streamline data acquisition, enhance experimental reproducibility, and accelerate research workflows.
2422

25-
PICA is designed with a clear separation between the user interface (frontend) and the instrument control logic (backend). This modular approach makes the system easy to maintain, extend, and debug.
23+
PICA is designed with a clear separation between the user interface (GUI) and the instrument control logic (backend). This modular approach makes the system easy to maintain, extend, and debug.
2624

2725
<div align="center">
2826
<img src="assets/Images/PICA_Launcher_v6.png" alt="PICA Launcher Screenshot" width="800"/>
@@ -34,9 +32,9 @@ PICA is designed with a clear separation between the user interface (frontend) a
3432

3533
The core design philosophy of PICA is the separation of concerns, implemented through a distinct **GUI-Backend** architecture for each measurement module.
3634

37-
- **GUI:** Each measurement has a dedicated GUI script (e.g., `IV_K2400_GUI_v5.py`) built with `Tkinter` and the `CustomTkinter` library. It is responsible for all user interaction, parameter input, and data visualization (live plotting). It runs in the main process.
35+
- **GUI (Frontend):** Each measurement has a dedicated GUI script (e.g., `IV_K2400_GUI_v5.py`) built with `Tkinter`. It is responsible for all user interaction, parameter input, and data visualization (live plotting). It runs in the main process to remain responsive.
3836
- **Backend:** The instrument control logic is encapsulated in a separate class (e.g., `Keithley2400_Backend`). This class handles all `PyVISA` communication, instrument configuration, and data acquisition commands.
39-
- **Process Isolation:** When a measurement is started, the frontend launches its corresponding backend logic in a separate, isolated process using Python's `multiprocessing` library. This is the key to PICA's stability: a crash or error in one measurement script will not affect the main launcher or any other running experiments.
37+
- **Process Isolation:** When a measurement is started, the GUI launches its corresponding backend logic in a separate, isolated process using Python's `multiprocessing` library. This is the key to PICA's stability: a crash or error in one measurement script will not affect the main launcher or any other running experiments.
4038
- **Communication:** The frontend and backend communicate via `multiprocessing.Queue` for thread-safe data exchange. The backend performs a measurement and places the data into a queue, which the frontend then reads to update plots and save to a file.
4139

4240
---
@@ -48,10 +46,8 @@ The core design philosophy of PICA is the separation of concerns, implemented th
4846
- [Available Measurement Modules](#available-measurement-modules)
4947
- [Instrument Specifications](#instrument-specifications)
5048
- [Getting Started](#getting-started)
51-
- [How to Cite](#how-to-cite)
52-
- [Prerequisites](#prerequisites)
53-
- [Installation Steps](#installation-steps)
5449
- [Resources & Documentation](#resources--documentation)
50+
- [How to Cite](#how-to-cite)
5551
- [Contributing](#contributing)
5652
- [Authors & Acknowledgments](#authors--acknowledgments)
5753
- [License](#license)
@@ -64,7 +60,7 @@ The core design philosophy of PICA is the separation of concerns, implemented th
6460
- **Isolated Process Execution:** Each script operates in a discrete process, guaranteeing application stability and preventing resource conflicts.
6561
- **Integrated VISA Instrument Scanner:** An embedded utility for discovering, identifying, and troubleshooting GPIB/VISA instrument connections.
6662
- **Modular Architecture:** Each experimental setup is encapsulated in a self-contained module with direct access to its scripts and data directories.
67-
- **Embedded Documentation:** In-application viewer for essential project documentation, such as the README and software license.
63+
- **Embedded Documentation:** In-application viewer for essential project documentation.
6864
- **System Console Log:** A real-time log provides status updates, confirmations, and error diagnostics for all operations.
6965

7066
---
@@ -88,34 +84,34 @@ All required packages are listed in the `requirements.txt` file for easy one-ste
8884
The PICA suite is organized into modules, each containing a frontend GUI application and its corresponding backend logic for instrument control.
8985

9086
#### Low Resistance (Keithley 6221 / 2182)
91-
* **Delta Mode I-V Sweep**
92-
* **Delta Mode R vs. T (Active Control)**
93-
* **Delta Mode R vs. T (Passive Sensing)**
87+
* **Delta Mode I-V Sweep**
88+
* **Delta Mode R vs. T (Active Control)**
89+
* **Delta Mode R vs. T (Passive Sensing)**
9490

9591
#### Mid Resistance (Keithley 2400)
96-
* **I-V Sweep**
97-
* **R vs. T (Active Control)**
98-
* **R vs. T (Passive Sensing)**
92+
* **I-V Sweep**
93+
* **R vs. T (Active Control)**
94+
* **R vs. T (Passive Sensing)**
9995

10096
#### Mid Resistance, High Precision (Keithley 2400 / 2182)
101-
* **I-V Sweep**
102-
* **R vs. T (Active Control)**
103-
* **R vs. T (Passive Sensing)**
97+
* **I-V Sweep**
98+
* **R vs. T (Active Control)**
99+
* **R vs. T (Passive Sensing)**
104100

105101
#### High Resistance (Keithley 6517B)
106-
* **I-V Sweep**
107-
* **R vs. T (Active Control)**
108-
* **R vs. T (Passive Sensing)**
102+
* **I-V Sweep**
103+
* **R vs. T (Active Control)**
104+
* **R vs. T (Passive Sensing)**
109105

110106
#### Pyroelectric Measurement (Keithley 6517B)
111-
* **PyroCurrent vs. T**
107+
* **PyroCurrent vs. T**
112108

113109
#### Capacitance (Keysight E4980A)
114-
* **C-V Measurement**
110+
* **C-V Measurement**
115111

116112
#### Temperature Utilities (Lakeshore 350)
117-
* **Temperature Ramp**
118-
* **Temperature Monitor**
113+
* **Temperature Ramp**
114+
* **Temperature Monitor**
119115

120116
---
121117

@@ -141,30 +137,6 @@ This facility provides users with a comprehensive, modular system for characteri
141137

142138
---
143139

144-
## How to Cite
145-
146-
If you use this software in your research, please cite it. This helps to credit the work involved in creating and maintaining this resource.
147-
148-
#### BibTeX Entry
149-
150-
You can use the following BibTeX entry for your reference manager (e.g., Zotero, Mendeley, JabRef).
151-
152-
```bibtex
153-
@software{Deshmukh_PICA_2023,
154-
author = {Deshmukh, Prathamesh Keshao and Mukherjee, Sudip},
155-
title = {{PICA: Python-based Instrument Control and Automation Software Suite}},
156-
month = sep,
157-
year = 2023,
158-
publisher = {GitHub},
159-
version = {14.1.0},
160-
url = {https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation}
161-
}
162-
```
163-
164-
Alternatively, you can use the `CITATION.cff` file in the root of the repository for automatic parsing by modern reference managers.
165-
166-
---
167-
168140
## 🚀 Getting Started
169141

170142
### Prerequisites
@@ -175,7 +147,8 @@ Alternatively, you can use the `CITATION.cff` file in the root of the repository
175147
### Installation Steps
176148

177149
1. **Clone the Repository**
178-
git clone https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation.git
150+
```bash
151+
git clone [https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation.git](https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation.git)
179152
cd PICA-Python-Instrument-Control-and-Automation
180153
```
181154

@@ -206,28 +179,42 @@ Alternatively, you can use the `CITATION.cff` file in the root of the repository
206179
207180
---
208181
209-
## 🛠️ Extending PICA: Adding a New Module
182+
## 📚 Resources & Documentation
210183
211-
The modular architecture makes it straightforward to add support for new instruments or measurement types. Here is a simplified example of the required structure.
184+
**Comprehensive Documentation:**
185+
For detailed setup instructions, hardware interfacing guides, and troubleshooting, please refer to the **[PICA User Manual](docs/User_Manual.md)** located in the `docs/` directory.
212186
213-
1. **Create a Backend Class:** Encapsulate all direct instrument communication (`PyVISA` commands) in a dedicated class.
214-
2. **Create a GUI GUI:** Build a `Tkinter` GUI to gather user parameters and display live data. This GUI will instantiate and control the backend.
215-
3. **Integrate with the Launcher:** Add a button and the script path to `PICA_v6.py` to make your new module accessible from the main dashboard.
187+
**Instrument Manuals:**
188+
A collection of official instrument manuals is provided within the `assets/Manuals/` directory for technical reference.
216189
217190
---
218191
219-
## Resources & Documentation
192+
## How to Cite
220193
221-
#### Included Manuals
222-
A collection of official instrument manuals and software library documentation is provided within the `/assets/Manuals/` directory. These documents serve as valuable technical references.
194+
If you use this software in your research, please cite it. This helps to credit the work involved in creating and maintaining this resource.
223195
224-
#### Instrument Interfacing Guide
225-
For a quick reference on instrument addresses, see the `GPIB_Address_Guide.md` file.
196+
#### BibTeX Entry
226197
227-
---
198+
```bibtex
199+
@software{Deshmukh_PICA_2023,
200+
author = {Deshmukh, Prathamesh Keshao and Mukherjee, Sudip},
201+
title = {{PICA: Python-based Instrument Control and Automation Software Suite}},
202+
month = sep,
203+
year = 2023,
204+
publisher = {GitHub},
205+
version = {14.1.0},
206+
url = {[https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation](https://github.com/prathameshnium/PICA-Python-Instrument-Control-and-Automation)}
207+
}
208+
````
209+
210+
Alternatively, you can use the `CITATION.cff` file in the root of the repository for automatic parsing by modern reference managers.
211+
212+
-----
228213
229214
## 🤝 How to Contribute
230-
Contributions are welcome! If you have suggestions for improvements or want to add a new instrument module, please feel free to:
215+
216+
Contributions are welcome\! If you have suggestions for improvements or want to add a new instrument module, please feel free to:
217+
231218
1. Fork the repository.
232219
2. Create a new branch (`git checkout -b feature/YourFeature`).
233220
3. Commit your changes (`git commit -m 'Add some feature'`).
@@ -236,17 +223,18 @@ Contributions are welcome! If you have suggestions for improvements or want to a
236223
237224
Please open an issue first to discuss any major changes you would like to make.
238225
239-
---
226+
-----
240227
241228
## Authors & Acknowledgments
242229
243-
<div align="center">
244-
<img src="assets/LOGO/UGC_DAE_CSR_NBG.jpeg" alt="UGC DAE CSR Logo" width="150">
245-
</div>
230+
\<div align="center"\>
231+
\<img src="assets/LOGO/UGC\_DAE\_CSR\_NBG.jpeg" alt="UGC DAE CSR Logo" width="150"\>
232+
\</div\>
246233
247-
- **Lead Developer:** **[Prathamesh Deshmukh](https://prathameshdeshmukh.site/)**
248-
- **Principal Investigator:** **[Dr. Sudip Mukherjee](https://www.researchgate.net/lab/Sudip-Mukherjee-Lab)**
249-
- **Affiliation:** *[UGC-DAE Consortium for Scientific Research, Mumbai Centre](https://www.csr.res.in/Mumbai_Centre)*
234+
- **Lead Developer:** **[Prathamesh Deshmukh](https://prathameshdeshmukh.site/)**
235+
- **Principal Investigator:** **[Dr. Sudip Mukherjee](https://www.researchgate.net/lab/Sudip-Mukherjee-Lab)**
236+
- **Affiliation:** *[UGC-DAE Consortium for Scientific Research, Mumbai Centre](https://www.csr.res.in/Mumbai_Centre)*
250237
251238
#### Funding
239+
252240
Financial support for this work was provided under SERB-CRG project grant No. CRG/2022/005676 from the Anusandhan National Research Foundation (ANRF), a statutory body of the Department of Science & Technology (DST), Government of India.

0 commit comments

Comments
 (0)