FastPM100
High speed acquisition and visualization ThorLabs PM100 power meter readings
Install / Use
/learn @WasatchPhotonics/FastPM100README
FastPM100
High speed acquisition and visualization of ThorLabs PM100 power meter readings.
Specifications for the Thorlabs PM100 class laser power meters include greater than 300 acquisitions per second. This project is designed to show all readings the user for low pulse width laser power measurements.
FastPM100 provides two different modes of visualization:
Basic strip chart
Shows the last 3k readings and the current reading.
Experimental visualization
Heatmaps, multi line plots and other techniques to help
visualize short duration laser power measurements.
Experimental visualization mode
Experimental visualizations include the "AllController" mode, which will display multiple sets of data from the SlapChop:

You can also use the TripleVisualizer.bat file on windows to preposition the display windows:

Basic strip chart mode
Consider the imagery below, which shows the difference between ThorLabs Optical Power Meter software (v5.4) and FastPM100. This image was captured using a Wasatch Photonics spectrometer under laser test with two PM100 usb meters connected through a beamsplitter. The faster sampling can prove invaluable when diagnosing complicated thermal, electrical and reflective power interactions.

Example use cases:
Temperature logging using the SlapChop:
First, setup the temperature recording script from BoardTester in BoardTester/scripts/:
python TemperatureLogger.py
To view all data on the local host:
cd FastPM100
python -u scripts/FastPM100.py --controller AllController

To view one day of data, updating every ten seconds:
python -u scripts/FastPM100.py
--controller AllController
--update 10000
--size 8640
Preload from a csv file, update every ten seconds:
python -u scripts/FastPM100.py
--controller AllController
--file ../../BoardTester/scripts/combined_log.csv
--update 10000
--size 8640
Pre-position the window in the center of the screen, full width:
python -u scripts/FastPM100.py
--controller AllController
--file ../../BoardTester/scripts/combined_log.csv
--update 10000
--size 8640
--geometry 0,385,1920,333
Thorlabs PM100USB fast visualization: configure the device as per the specifications below, then run:
python -u scripts/FastPM100.py
Run showing just the last 300 readings:
python -u scripts/FastPM100.py --size 300
Installation and testing setup
Running tests:
First, install the python package in development mode:
python setup.py develop
All Tests, with coverage report showing missing lines:
py.test tests/ --cov=fastpm100 --cov-report term-missing
Certain tests are marked xfail to pass without access to the
physical hardware. After the setup is performed below, run these
with:
py.test tests/test_thorlabs.py --hardware
Setup access to physical hardware:
sudo -e /etc/udev/rules.d/99-thorlabs.rules
Add the following text:
# Thorlabs PM100 USB
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="1313", ATTRS{idProduct}=="8072", MODE="0666"
Configure the power meter:
For maximum reads per second, make sure to open the "Optical Power
Meter" application from Thorlabs. Configure the device with the
following settings:
Range: turn off auto
High gain
No averaging
Related Skills
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.6kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.6kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
