Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tenma-serial-1.1.2.tar.gz (38.9 kB view details)

Uploaded Source

Built Distribution

tenma_serial-1.1.2-py3-none-any.whl (31.0 kB view details)

Uploaded Python 3

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

Hashes for tenma-serial-1.1.2.tar.gz
Algorithm Hash digest
SHA256 9e11dc82f3cbccf960ae575d6a786a4acb5be44fc6ebf4b8d778cf7c34f3b5f4
MD5 721718128aac22d500a3073f4258c8db
BLAKE2b-256 a3fff7896bef77b9a60bbacf37c5c1c965450a809b08160934390ca83d273305

See more details on using hashes here.

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

Hashes for tenma_serial-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d44c68d260362417fc8b6afab9621c946f8f0cab557beb183683e26f20de6287
MD5 7c68f1d63f70f2b8d27f567fb30b729d
BLAKE2b-256 fc4eb263bbff8d89411ac3c5bc0125ac2b7fc1d5b4b010e4ca37861eae4f177c

See more details on using hashes here.

Supported by

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