Serial control of tenma device
Project description
Tenma DC power supply controllers
Provides two basic controllers (tested on Linux) for a TENMA DC power supply via serial interface. Working on python 2.7 and python 3.
- tenmaControl.py (tenma-control) (command line utility)
- gtkIndicator.py (tenma-applet) (GTK indicator to sit on tray)
tenmaControl
What is this?
A small command line program / library to setup a Tenma 72-XXXX DC POWER SUPPLY from your computer via SERIAL.
Supports the following models with predefined limits:
* 72-2545 -> Tested on HW (@kxtells)
* 72-2535 -> Set as manufacturer manual (not tested)
* 72-2540 -> Tested on HW (thomas-phillips-nz)
* 72-2550 -> Tested on HW (@kxtells)
* 72-2705 -> Tested on HW (@ollie1400)
* 72-2930 -> Set as manufacturer manual (not tested)
* 72-2940 -> Set as manufacturer manual (not tested)
* 72-13320 -> Set as manufacturer manual (not tested)
* 72-13330 -> Tested on HW (thomas-phillips-nz)
* 72-13360 -> Tested on HW (Sebastian Norlin)
Also, even if not described, should support Koradka
models and other Velleman units
which are just rebrandings of the same internals. Might need to set the
appropiate MATCH_STR
in the source code, feel free to open a PR if you test
it in a known hardware unit.
Originally, Coming back from holidays was hard. So I spent some time with a little game setting up our power supply(tongue). You'll find a small explanation of the original code in:
https://jcastellssala.com/2017/10/31/tenma72-2540-linux-control/
Installing
From pip
pip install tenma-serial
pip install will leave tenma-control
and tenma-applet
in your PATH ready to use.
Locally
It does not have many requirements, so you might just clone the repo and run it. install the required packages first.
pip install -r requirements.txt
Usage examples
Note that it can be connected via a usb to serial cable, or directly with the
provided USB cable. In Linux it identifies the usb as Bus 001 Device 015: ID 0416:5011 Winbond Electronics Corp. Virtual Com Port
, running dmesg
to get
where the /dev/ttyACMX device registerd and pointing tenmaControl.py to that
device should work.
any of the following examples can run via tenma-control
or tenmaControl.py
.
Print the Tenma version
tenmaControl.py /dev/ttyUSB0
Set the current and the voltage
For example: 2.2 Amperes 5V:
tenmaControl.py -c 2200 -v 5000 /dev/ttyUSB0
Turn on the channel output
tenmaControl.py --on /dev/ttyUSB0
Turn OFF the channel output
tenmaControl.py --off /dev/ttyUSB0
Load an existing memory
tenmaControl.py -r 1
tenmaControl.py --recall 2
Create a new value for a memory 4
tenmaControl.py -c 2200 -v 5000 --save 4 /dev/ttyUSB0
Print everything
tenmaControl.py -c 2200 -v 5000 --save 4 --verbose --debug /dev/ttyUSB0
tenma-applet gtkIndicator
A very simple GTK indicator to control a tenma DC power supply from a graphical desktop. Provides ON, OFF and RESET facilities. Simply start it with:
tenma-applet
Or directly from the source code via:
./gtkIndicator.py
Known Shortcomings:
- The physical buttons are blocked for a while after connecting.
Testing:
This project contains some pytest tests to make it easier to add support for new power supply variants, and validate changes to the code.
These tests live under the tests/
directory in test_tenma.py
. There are two environment variables used by the tests:
- TENMA_MODEL - set this to the MATCH_STR of the power supply you're testing. Defaults to 72-2540
- TENMA_PORT - Optional: set this to the COM/tty port on you PC connected to the power supply. Defaults to auto-finding the port
The tests were written against 72-2540, there are no extra tests for the 72-133XX models (yet). We curerntly test:
- PSU init/version string
- Set/get voltage
- Set/get current
- Save/recall memory in all slots
- Set/unset beep
- Turn output on/off
Note: Before testing, disconnect everything from the power supply. We try to test as safely as possible, but no promises are made
First, install pytest:
pip install pytest
Then you can run the tests from the root directory of the repo:
python -m pytest
You can set the environment variables when you run the test:
# Windows:
$env:TENMA_MODEL='72-2550'; $env:TENMA_PORT='COM7'; python -m pytest
# Linux:
TENMA_MODEL='72-2550' TENMA_PORT='COM7' python -m pytest
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file tenma-serial-1.1.2.tar.gz
.
File metadata
- Download URL: tenma-serial-1.1.2.tar.gz
- Upload date:
- Size: 38.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e11dc82f3cbccf960ae575d6a786a4acb5be44fc6ebf4b8d778cf7c34f3b5f4 |
|
MD5 | 721718128aac22d500a3073f4258c8db |
|
BLAKE2b-256 | a3fff7896bef77b9a60bbacf37c5c1c965450a809b08160934390ca83d273305 |
File details
Details for the file tenma_serial-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: tenma_serial-1.1.2-py3-none-any.whl
- Upload date:
- Size: 31.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d44c68d260362417fc8b6afab9621c946f8f0cab557beb183683e26f20de6287 |
|
MD5 | 7c68f1d63f70f2b8d27f567fb30b729d |
|
BLAKE2b-256 | fc4eb263bbff8d89411ac3c5bc0125ac2b7fc1d5b4b010e4ca37861eae4f177c |