Skip to main content

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

neng_temp_logger-0.4.5.tar.gz (156.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neng_temp_logger-0.4.5-py3-none-any.whl (116.2 kB view details)

Uploaded Python 3

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

Hashes for neng_temp_logger-0.4.5.tar.gz
Algorithm Hash digest
SHA256 5730687cd25947339f27f2dcc593f7292b2c736acf00d914e3536dacb8614e01
MD5 542aebf7c98de0f7efdf8abd9a59b8be
BLAKE2b-256 d217e21f08fa9c2442e1d712deff7241e524dc0b1f8d6661483b1077af877b4c

See more details on using hashes here.

File details

Details for the file neng_temp_logger-0.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for neng_temp_logger-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2fdf24aac8ad13b11cc1854708ed8fe1619d460b59dde06824b3bb861c8e6227
MD5 bf7cb2d2d0322933a8406191bc9d8726
BLAKE2b-256 32251fd625eefb1eacc238173439705239c1bc1854e0e4a31d0810aedeef0eb2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page