Skip to content
This repository has been archived by the owner on Aug 12, 2023. It is now read-only.
/ New-DMPS-software Public archive

GUI to control DMPS measurement device

Notifications You must be signed in to change notification settings

ussaka/New-DMPS-software

Repository files navigation

New DMPS software

Image of old dmps system
Old DMPS system. New DMPS systems that I worked with are far more compact, all components are in one chassis. Check DMPS Photos folder for more pictures.
Source: https://wiki.helsinki.fi/display/SMEAR/DMPS-system+Instructions

GUI to control DMPS measurement device. The device has a simple operating principle. It decides what size of particles to let through. Then it uses a separate CPC device to count the particles. This is repeated to all particle sizes to get size distribution.

Summer intern project for the University of Helsinki. Copy of a GitLab repository. Note that this repository is out of date and will not include updates made others than myself.

Features

General

  • Program for DMPS, HalfMini and UFDMPS.
  • Basic working principle for all setups is similar. Parameters are different and for example HalfMini uses probably different kind of blower. UFDMPS has two DMAs and two CPCs.

  • ✔️ = Feature is done
  • ❌ = Feature is not yet implemented
  • ❔ = Not sure if the feature is needed or is implemented

Detectors

  • ✔️ TSI CPCs old legacy serial and pulse connection
  • ❌ TSI CPCs, new serial, pulse and TCP connections
  • ❌ TSI electrometer
  • ❌ Airmodus A20
  • ❌ Airmodus PSM+A20 (for HalfMini)
  • ❌ Airmodus new model (A30?)
  • ❌ Airmodus UFCPC model coming?
  • ❌ Analog electrometers
  • ❌ Also detector status should be saved (concentration and all other data)

DMA's

  • ❔ Vienna different lengths
  • ❔ HalfMini
  • ❔ TSI nano and long

Blowers

  • ✔️ Both analog control and pwm using TSI flow meter
  • ❌ HalfMini could use 2 x blower (same type as for DMPS) in future

TSI flow meter

  • ✔️ Flow, T and P
  • ✔️ 4000 series
  • ❌ 5000 series

Analog signals

  • ✔️ dP (flow), T, P, RH, HV monitor
  • ❔ Possibility to add more analog input channels

High Voltage

  • ✔️ Stepping voltage (DMPS)
  • ❌ Stepping voltage (SMPS)
  • ❌ Continous voltage scan (DMPS and SMPS)

PID control

  • ✔️ Sheath flow
  • ❌ Blower pid using microcontroller?
  • ❌ HV control
  • ✔️ Blower pid control is executed in separate thread, could be improved

Inversion

  • ❌ Python inversion by Anton as module or stand alone old Fortran code from PasiA
  • ❌ SMPS inversion? In a separate script but the actual measurement program could give a possibility to determine the delay time.

Parameters

  • ✔️ *.INI-file
  • ✔️ Program should give a possibility to create the *INI-file (graphical user interface). -> The ini file can be edited in the gui and ini file template is part of this repository. New ini file can not be created with the gui.
  • ✔️ Should have also a 'service mode' which allows to change the parameters from GUI. Service mode should show the scaled values.
  • ❌ Service mode should also show the raw values

Graphical user interface

  • ✔️ Tkinter
  • ✔️ Draw graphs of the data

DAQ by NI

  • ✔️ NI6211 & 6215

Instructions

Requirements

  • Python 3.x.x
  • Tested to work with Python version 3.9.7
  • NI-DAQmx (NI-DAQmx Runtime might be enough?)

Installation

  • Open any terminal program(cmd) and download the repository with git clone https://version.helsinki.fi/atm-tech/new-dmps-software.git you need credentials for that
    • Or just download the zip file from the main page
    • Install the repository to any safe location

  • Create virtual environment with python -m venv env inside new-dmps-software folder
    • Virtual environment enables you to have multiple different python and python module versions installed on the same PC. The Environment to run this program is now isolated virtual environment.
    • Usage of virtual environment is optional
  • Activate the env with env\Scripts\activate
    • Make sure you are in correct location so the given file path will work(Root folder which contains env folder)
    • PowerShell might give you trouble
    • If your terminal displays (env) [PATH] everything is working correctly

  • Navigate with cd inside new-dmps-software(root folder of the program)
  • Install required depencies with python -m pip install -r requirements.txt
    • Pip probably gives warning to upgrade to a new version. You can do that if you want
    • Installation is now complete

How to start the program

  • Navigate inside new-dmps-software folder with any terminal program(cmd)
  • Activate the virtual environment env\Scripts\activate
    • PowerShell might give you trouble
    • If you encounter problems ensure that your PATH is correct
  • Run the main file with python main.py

Bugs/Issues

  • Known small priority bugs are documented in Gitlab's Issues section
  • If you encounter a bug you can document it in the Issues section. It would be helpful if you attach debug.log from debug folder (and screenshot of terminal output) to the report