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.

Metadata

Release files for lenz-flashtool 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lenz-flashtool 0.2.0
File Size Uploaded
lenz_flashtool-0.2.0.tar.gz 92.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lenz-flashtool 0.2.0
File Interpreter ABI Platform
lenz_flashtool-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 204.1 kB

Release files / lenz_flashtool-0.2.0.tar.gz

Download URL lenz_flashtool-0.2.0.tar.gz
Size 92.7 kB
Tags Source
SHA-256 checksum
How to use checksums
e5dd01e292f977beb8fe6a34d9132debc0f972e988474565716c4a75ae891d5f
BLAKE2b-256 checksum
How to use checksums
2351940c471e1adbd8ed31855085edb8e8e80c091eec278cb6578367ad2fc69d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / lenz_flashtool-0.2.0-py3-none-any.whl

Download URL lenz_flashtool-0.2.0-py3-none-any.whl
Size 111.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4fdad48449ee0d611d1467a46f1bb5e77f071b320b466c5cc24d8f2affb62cb0
BLAKE2b-256 checksum
How to use checksums
f6ff47981903e99c0bcb8903558cc226628006df354093ade66e10b27954a5ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release 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