Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
cl57t-raspberry-pi-stepper-drive
Advanced tools
this is a Python libary to drive a stepper motor with a CL57T stepper driver and a Raspberry Pi
This is a library to drive a stepper motor with a CL57T stepper driver and a Raspberry Pi.
This code is still experimental, so use it on your own risk.
This library is programmed in pure Python. The performance of Python is not good enough to drive the motor with high speed. So if you move the motor with high speed and this library the motor will lose steps.
This library is a fork of cl57t-raspberry-pi-stepper-drive. Please check out this repo for more context.
the Documentation of the CL57T can be found here:
CL57T - Datsheet
The code is also available on PyPI.
pip3 install cl57t-raspberry-pi-stepper-drive
Pin CL57T | connect to | Function |
---|---|---|
COM,ENA-, DIR-, PUL- | GND of Raspberry Pi | GND for VDD and Signals |
ALM | GPIO 26 (pin 37) | receive an error signal from stepper driver |
ENA | GPIO 19 (pin 35) | enable the motor output |
DIR | GPIO 13 (pin 33) | set the direction of the motor |
PUL/STEP | GPIO 6 (pin 31) | moves the motor one step per pulse |
HOMING_SENSOR | GPIO 5 (pin 29) | optional, used for homing the stepper |
The GPIO pins can be specific when initiating the class.
#pylint: disable=wildcard-import
#pylint: disable=unused-wildcard-import
#pylint: disable=unused-import
#pylint: disable=duplicate-code
"""
test file for testing basic movement
"""
from cl57t_raspberry_pi_stepper_drive.CL57TStepperDriver import *
print("---")
print("SCRIPT START")
print("---")
# Pinout
# GPIO 26 (pin 37): ALM
# GPIO 19 (pin 35): ENA
# GPIO 13 (pin 33): DIR
# GPIO 6 (pin 31): PUL/STEP
# GPIO 5 (pin 29): HOMING_SENSOR
#-----------------------------------------------------------------------
# initiate the CL57T class
# use your pins for pin_en, pin_step, pin_dir here
#-----------------------------------------------------------------------
stepper = CL57TStepperDriver(
pin_en=19, # GPIO 19 (pin 35): ENA
pin_step=6, # GPIO 6 (pin 31): PUL/STEP
pin_dir=13, # GPIO 13 (pin 33): DIR
pin_homing_sensor=5, # GPIO 2 (pin 29): HOMING_SENSOR
microstepping_resolution=1600,
gearwheel_diameter_mm=56, # HTD 36 5M 09
loglevel=Loglevel.DEBUG,
)
#-----------------------------------------------------------------------
# set the loglevel of the libary (currently only printed)
# set whether the movement should be relative or absolute
# both optional
#-----------------------------------------------------------------------
stepper.cl57t_logger.set_loglevel(Loglevel.DEBUG)
stepper.set_movement_abs_rel(MovementAbsRel.ABSOLUTE)
print("---\n---")
#-----------------------------------------------------------------------
# activate the motor current output
#-----------------------------------------------------------------------
stepper.set_motor_enabled(True)
stepper.set_acceleration(800)
stepper.set_max_speed(800)
stepper.do_homing()
stepper.set_acceleration(1600 * 10)
stepper.set_max_speed(10000)
stepper.set_homing_position_mm(400)
stepper.run_to_position_mm(1000)
stepper.run_to_position_mm(400)
#-----------------------------------------------------------------------
# move the motor 1 revolution
#-----------------------------------------------------------------------
# stepper.run_to_position_steps(9) #move to position 400
# stepper.run_to_position_steps(0) #move to position 0
#
#
# stepper.run_to_position_steps(400, MovementAbsRel.RELATIVE) #move 400 steps forward
# stepper.run_to_position_steps(-400, MovementAbsRel.RELATIVE) #move 400 steps backward
#
#
# stepper.run_to_position_steps(400) #move to position 400
# stepper.run_to_position_steps(0) #move to position 0
#-----------------------------------------------------------------------
# deactivate the motor current output
#-----------------------------------------------------------------------
stepper.set_motor_enabled(False)
print("---\n---")
#-----------------------------------------------------------------------
# deinitiate the CL57T class
#-----------------------------------------------------------------------
del stepper
print("---")
print("SCRIPT FINISHED")
print("---")
This library is a fork of TMC2209_Raspberry_Pi .
The code to run the stepper motor is based on the code of the AccelStepper Library from Mike McCauley.
The main focus for this are Test setups, as Python is not fast enough for high motor speeds.
If you encounter any problem, feel free to open an issue on the Github issue page. Feedback will keep this project growing and I encourage all suggestions. Feel free to submit a pull request on the dev branch.
FAQs
this is a Python libary to drive a stepper motor with a CL57T stepper driver and a Raspberry Pi
We found that cl57t-raspberry-pi-stepper-drive demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.