lenz-flashtool
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:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/my-feature). - Commit your changes (
git commit -m "Add my feature"). - Push to the branch (
git push origin feature/my-feature). - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| lenz_flashtool-0.2.0.tar.gz | 92.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|