Skip to main content

lenz-flashtool

PyPI Version

FlashTool library for BiSS C Firmware Update and Calibration by LENZ Encoders.

This is the source repository for the lenz-flashtool Python package, designed to interface with LENZ BiSS C encoders for firmware updates, calibration, and data reading. It provides a FlashTool class and utility functions for working with encoder hardware, including hex file manipulation and color formatting utilities.

📚 Full Documentation: flashtool.lenzencoders.com

Features

  • Control LENZ BiSS C encoders via serial communication.
  • Upload firmware and calibration data.
  • Read encoder status, serial numbers, and error flags.
  • Utilities for CRC calculation, hex data generation, and colored logging output.

Installation

From PyPI (Recommended)

pip install lenz-flashtool

From local folder

pip install .

From GitHub

pip install git+https://github.com/lenzencoders/lenz-flashtool-lib.git

Requirements

  • Python 3.8 or higher
  • pyserial>=3.5 (for serial communication)
  • numpy>=1.21.0 (for data handling)

Usage

Basic Example

from lenz_flashtool import FlashTool, init_logging

# Set up logging
#
# Level	            Integer Value
# logging.CRITICAL  50
# logging.ERROR     40
# logging.WARNING   30
# logging.INFO      20
# logging.DEBUG     10
# logging.NOTSET    0
init_logging(logfilename="flashtool.log", stdout_level=20, file_level=10)

# Initialize FlashTool
with FlashTool(port_description_prefixes=('XR21V')) as ft:
    # Power cycle the encoder
    ft.encoder_power_cycle()

    # Read serial number
    bootloader_ver, serial_num, mfg_date, program_ver = ft.biss_read_snum()
    print(f"Encoder Serial Number: {serial_num}")
# The connection is automatically closed when exiting the 'with' block

Note on Naming

The package is installed as lenz-flashtool (with a hyphen), but imported in Python as lenz_flashtool (with an underscore) due to Python’s naming conventions.

Shell completion (zsh)

A zsh completion for the lenz-flashtool-cli command ships in completions/. See completions/README.md for installation and the zstyle settings required to display argument hints.

Documentation

For detailed API documentation, examples, and usage instructions, visit the LENZ FlashTool Documentation.

Development

Install Locally

git clone https://github.com/lenzencoders/lenz-flashtool-lib.git
cd lenz-flashtool-lib
pip install .

Run Tests

pip install pytest
pytest tests/

Contributing

Contributions are welcome! Please:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/my-feature).
  3. Commit your changes (git commit -m "Add my feature").
  4. Push to the branch (git push origin feature/my-feature).
  5. Open a pull request.

Report issues at github.com/lenzencoders/lenz-flashtool-lib/issues.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

For support or inquiries, contact LENZ ENCODERS at info@lenzencoders.com.

Download files

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

Source Distribution

lenz_flashtool-0.2.0.tar.gz (92.7 kB view details)

Uploaded Source

Built Distribution

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

lenz_flashtool-0.2.0-py3-none-any.whl (111.4 kB view details)

Uploaded Python 3

File details

Details for the file lenz_flashtool-0.2.0.tar.gz.

File metadata

  • Download URL: lenz_flashtool-0.2.0.tar.gz
  • Upload date:
  • Size: 92.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for lenz_flashtool-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e5dd01e292f977beb8fe6a34d9132debc0f972e988474565716c4a75ae891d5f
MD5 146ea7bf84ef9a2278444bea37704ca6
BLAKE2b-256 2351940c471e1adbd8ed31855085edb8e8e80c091eec278cb6578367ad2fc69d

See more details on using hashes here.

File details

Details for the file lenz_flashtool-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lenz_flashtool-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 111.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.3

File hashes

Hashes for lenz_flashtool-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4fdad48449ee0d611d1467a46f1bb5e77f071b320b466c5cc24d8f2affb62cb0
MD5 7e95208af6dda4a24bef46617bbb5a21
BLAKE2b-256 f6ff47981903e99c0bcb8903558cc226628006df354093ade66e10b27954a5ef

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page