Skip to main content

Functions and examples to control Thorlabs KLC controllers (KLC101) through serial commands with Python

Project description

KLCserial

Functions and examples to control Thorlabs KLC controllers (KLC101) through serial commands with Python.

The official software can be found on the Supplier Download Site. Documentation is also available through the same website. The serial commands have been partially assembled from the Thorlabs Motion Controllers Host-Controller Communications Protocol.

There is no specific documentation for the KLC101 so I assembled commands from other stages.

Requirements

Needs serial and pyserial (both of them are needed for this to work somehow), best installed through:

pip install serial pyserial

Usage

Simply run

pip install KLCserial

Then in your Python script invoke the functions by

from KLCserial import KLC
klc = KLC()

With klc you can then call all functions and methods of the controllers.

Look at example.py. There are a few more commands implemented than shown in the example but they appear not to be too helpful for most applications.

Serial ports

By default the openKLC()-function will use all the ports found under /dev/serial/by-id/*Kinesis_LC_Controller* (Windows: COM[0-255], not tested) and try to connect through serial.

You need write-access to the tty-port. Either run as the admin or change the permissions or the ownership on the serial port, preferably with a udev rule, e.g. something like /etc/udev/rules.d/80-usb-serial.rules

SUBSYSTEM=="tty", MODE="0666"

(After changing run as root: udevadm control --reload-rules && udevadm trigger)

License

This project is licensed under the Apache-2.0 license. Copyright 2025 iancynk

Acknowledgement

You're welcome!

Comments and suggestions highly welcome.

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

klcserial-0.27.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

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

klcserial-0.27-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file klcserial-0.27.tar.gz.

File metadata

  • Download URL: klcserial-0.27.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for klcserial-0.27.tar.gz
Algorithm Hash digest
SHA256 220902762c0f3c1b2bb136804958f404ca4ee37364fc09dac116466970ef3dae
MD5 a905751341593dc0da1c1378b25f52e0
BLAKE2b-256 1ab1598b1b457ad63a426ab409f8342b26cc1c356b796332d179d8c7d17ea43d

See more details on using hashes here.

File details

Details for the file klcserial-0.27-py3-none-any.whl.

File metadata

  • Download URL: klcserial-0.27-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for klcserial-0.27-py3-none-any.whl
Algorithm Hash digest
SHA256 9f0d9958b0df857c0f8cdff083ef9f118cc4eb2d9e4d2e6c14eb6bf0a5841763
MD5 60dba5690ab1f70787a02dcd43dde90d
BLAKE2b-256 450fa423306a3dd5372ec9b4884bb0d99798d934e0e79b9120337da11a940302

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