Real-time temperature logger with CLI + Tkinter GUI for NEnG TMP117 instruments.
Project description
Temp Logger
Real-time temperature logger and instrument control suite for NEnG TMP117 PID instruments.
Tools included
| Command | Description |
|---|---|
temp-logger |
CLI real-time logger with live matplotlib plots and CSV export |
temp-logger-gui |
Tkinter GUI logger with embedded plots, dark theme, WiFi/USB support |
pid-controller-gui |
PID temperature controller GUI — ramp control, tuning, TEC, live graphs |
wifi-config-gui |
WiFi configuration GUI — network management, status monitoring, SCPI console |
scpi-client |
Interactive SCPI terminal with tab-completion, history, pretty-printed output |
tmp117-scan |
Fast network scanner to discover TMP117 devices on port 5025 |
update-firmware |
OTA firmware updater — single/batch file upload, git-aware deployment |
All connection-based tools support USB serial and WiFi/TCP connections. WiFi lets you log data and control the instrument simultaneously from two terminals. See WIFI_SUPPORT.md for details.
This directory is a standalone, pip-installable Python package.
Install
Recommended: Install from PyPI
pip install neng-temp-logger
Development install from source (editable mode)
Clone the repository and install in editable mode:
git clone git@gitlab.flavio.be:flavio/temp-logger.git
cd temp-logger
python3 -m venv .venv
source .venv/bin/activate # macOS / Linux
python -m pip install -U pip
python -m pip install -e .
Tkinter on macOS
The GUI tools require Tkinter. On macOS it may be missing depending on how Python was installed. See TKINTER_INSTALLATION.md.
brew install tcl-tk
brew install python-tk@3.xx # replace xx with your Python minor version
Run
Temperature logger (GUI)
temp-logger-gui
Temperature logger (CLI)
temp-logger # auto-detect port, live plot
temp-logger --no-plot # headless (data-only)
temp-logger --output exp1.csv # custom output file
temp-logger --wifi 192.168.1.100 # force WiFi connection
PID controller GUI
pid-controller-gui # auto-connects USB or WiFi
WiFi configuration GUI
wifi-config-gui # manage WiFi networks and settings
IMPORTANT: CIRCUITPY must be unmounted for WiFi configuration changes to persist!
diskutil unmount /Volumes/CIRCUITPY # macOS
umount /media/$USER/CIRCUITPY # Linux
Interactive SCPI terminal
scpi-client # USB auto-detect, interactive
scpi-client -w # WiFi auto-detect (scans all networks)
scpi-client -w 192.168.1.100 # WiFi with explicit IP
scpi-client "*IDN?" # single command, then exit
NEW: scpi-client -w (without IP) auto-detects devices across all network interfaces.
Network device scanner
tmp117-scan # scan ALL network interfaces (WiFi, Ethernet, VLANs)
tmp117-scan -n 192.168.1.0/24 # scan specific network
tmp117-scan -v # verbose mode
tmp117-scan --json # JSON output
NEW: Auto-detection now scans all network interfaces — finds devices even on different subnets.
OTA firmware update
# Auto-detect device on ALL networks (WiFi, Ethernet, VLANs)
update-firmware --git-deploy --yes --reboot # easiest method!
# Explicit IP for specific device
update-firmware 192.168.1.100 code.py --password 'pass' --reboot # single file
update-firmware 192.168.1.100 code.py boot.py --password 'pass' # batch upload
update-firmware 192.168.1.100 --git-deploy --password 'pass' # git-aware deploy
update-firmware 192.168.1.100 --git-deploy --dry-run # preview changes
update-firmware 192.168.1.100 --git-deploy --force-full --reboot # full redeploy
# Scan specific network if auto-detect fails
update-firmware --scan-network 10.104.32.0/24 --git-deploy --yes --reboot
NEW:
- Auto-detection now scans all network interfaces — no IP needed!
- Git-aware deployment uploads only changed files (97% bandwidth savings)
- 10-12x faster upload speeds (~50-100 KB/s with optimized TCP buffers)
- File deletion support for removed files from git repo
See OTA_QUICK_START.md for complete guide.
Documentation index
| File | Description |
|---|---|
| GUI_QUICKSTART.md | 60-second getting started for temp-logger-gui |
| GUI_README.md | Detailed temp-logger-gui reference |
| REALTIME_LOGGER_README.md | CLI temp-logger documentation |
| DEVICE_SCANNER.md | Network scanner for discovering TMP117 devices |
| WIFI_SUPPORT.md | WiFi/TCP connection guide |
| WIFI_QUICKSTART.md | Quick WiFi setup |
| TKINTER_INSTALLATION.md | Tkinter setup for macOS |
| RELEASE_CHECKLIST.md | Release process and checklist |
Notes
- USB serial communicates via CDC at 115 200 baud.
- WiFi/TCP uses port 5025 (standard SCPI-over-TCP).
- Only one application can use USB serial at a time; WiFi allows a second simultaneous connection.
(c) 2024-26 Prof. Flavio ABREU ARAUJO. All rights reserved.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file neng_temp_logger-0.4.5.tar.gz.
File metadata
- Download URL: neng_temp_logger-0.4.5.tar.gz
- Upload date:
- Size: 156.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5730687cd25947339f27f2dcc593f7292b2c736acf00d914e3536dacb8614e01
|
|
| MD5 |
542aebf7c98de0f7efdf8abd9a59b8be
|
|
| BLAKE2b-256 |
d217e21f08fa9c2442e1d712deff7241e524dc0b1f8d6661483b1077af877b4c
|
File details
Details for the file neng_temp_logger-0.4.5-py3-none-any.whl.
File metadata
- Download URL: neng_temp_logger-0.4.5-py3-none-any.whl
- Upload date:
- Size: 116.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fdf24aac8ad13b11cc1854708ed8fe1619d460b59dde06824b3bb861c8e6227
|
|
| MD5 |
bf7cb2d2d0322933a8406191bc9d8726
|
|
| BLAKE2b-256 |
32251fd625eefb1eacc238173439705239c1bc1854e0e4a31d0810aedeef0eb2
|