Skip to main content

ZDT X42S dual-firmware (X/Emm/Turbo) closed-loop stepper driver

Project description

x42s_stepper — ZDT X42S 双固件闭环步进电机控制库

基于 ZDT X42S 用户手册 V1.0.5,面向 X42S 板卡,同时支持:

  • X 固件
  • Emm 固件
  • Emm 狂暴 (Turbo)0xD5 类型码 02

实机能力因固件版本而异;快速位置 F1/FC 需要 V2.0.0+

相关项目

仓库 定位
xhfb/emm_stepper X42S 仅 Emm(历史库,本库为其双固件超集)
xhfb/y42_stepper Y42 板卡双固件(X/Emm,无 Turbo/F1 侧重点不同)

板卡系列协议相近但不全相同,请按板卡选型装库,不要混用 X42SDevice / Y42Device

特性

  • ✅ 串口 TTL/RS485 自由协议(FIXED 0x6B / XOR / CRC8)
  • ✅ 多电机(同串口不同地址)
  • ✅ X / Emm / Turbo 统一物理单位 API(度 / RPM / mA)
  • ✅ 固件探测(配置块 0x420x25=X,0x21=Emm)与切换(0xD5
  • ✅ 速度 / 位置 / X 力矩与限流运动
  • ✅ 快速位置 F1/FC(Emm 脉冲 / X 0.1° 角度,V2.0.0+)
  • ✅ 回零、同步 FF66、多机 0xAA、定时返回、配置与 PID

安装

本项目已发布到 PyPI,推荐直接使用 pip 安装:

pip install x42s_stepper

该命令会自动安装依赖(pyserial>=3.5)。需要 Python >=3.8

也可从源码或 GitHub 安装:

cd x42s_stepper && pip install -e .
# 或
pip install git+https://github.com/xhfb/x42s_stepper.git

PyPI:https://pypi.org/project/x42s-stepper/

快速开始

from serial import Serial
from x42s_stepper import X42SDevice, Direction, FirmwareType, MotionMode

ser = Serial("COM9", 115200, timeout=0.1)
motor = X42SDevice(ser, address=1)

print(motor.firmware_type, motor.get_version().firmware_version_str)

motor.enable()
motor.jog(speed_rpm=100, direction=Direction.CW)
import time
time.sleep(1)
motor.stop()

motor.move_position(angle_deg=90, speed_rpm=200, motion_mode=MotionMode.RELATIVE_CURRENT)
motor.wait_position_reached(timeout=10)

# 快速位置 (V2.0.0+)
if motor.supports_fast_position:
    motor.configure_fast_position(speed_rpm=800, acceleration=100)
    if motor.firmware_type != FirmwareType.X_FIRMWARE:
        motor.move_fast_pulses(3200)
    else:
        motor.move_fast_degrees(90)
    motor.wait_position_reached()

motor.disable()
ser.close()

双固件说明

项目 X Emm / Turbo
速度 0.1RPM + RPM/s;库上限约 3000 RPM 整数 RPM + 档位;库上限 6000 RPM
位置 直通 FB / 梯形 FD 脉冲 FD
力矩
快速位置 F1/FC F1 梯形参数 + FC 角度(0.1°) F1 速度档位 + FC 脉冲
Turbo FirmwareType.EMM_TURBO,布局同 Emm
motor.stop()
motor.switch_firmware(FirmwareType.X_FIRMWARE, store=True)
motor.switch_firmware(FirmwareType.EMM_FIRMWARE, store=True)
# 狂暴模式前请按手册完成校准
motor.switch_firmware(FirmwareType.EMM_TURBO, store=True)

与 emm_stepper / y42_stepper

  • emm_stepper 迁徙:把 EmmDevice 换成 X42SDevicejog(speed=...) 改为 jog(speed_rpm=...);位置用 move_position;F1/FC API 名称兼容(configure_fast_position / move_fast_pulses)。
  • y42_stepper 同架构(门面 + 双布局参数 + 配置块探测),但增加 Turbo 与双边 F1/FC,速度上限按 X42S 手册区分。

实机测试

python full_test.py COM9
python full_test.py COM9 --move --firmware

许可证

MIT License

作者

XHFB

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

x42s_stepper-0.1.0.tar.gz (41.9 kB view details)

Uploaded Source

Built Distribution

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

x42s_stepper-0.1.0-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

Details for the file x42s_stepper-0.1.0.tar.gz.

File metadata

  • Download URL: x42s_stepper-0.1.0.tar.gz
  • Upload date:
  • Size: 41.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for x42s_stepper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1e5ebe3eb340f2b95920fff25a04c0a3d27250aefd2606b382c95504bd6c2239
MD5 8fcaf8fb514e7efb6fba4cdd74be3e74
BLAKE2b-256 b3e8a4b49ef02dda7a20083051aa26472870a564c3787cf9aab75975a54df4ab

See more details on using hashes here.

File details

Details for the file x42s_stepper-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: x42s_stepper-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 46.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for x42s_stepper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa50f8402668fa27a19329f52f493fd3224699de96a8d4458507560a150fc580
MD5 4fab899434469e1b953868790a48d099
BLAKE2b-256 03a3ce0722d654f69035c2cdd09cccae6da5fc4d65afe9dcc21c57ba6318efee

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