-
Remove unused state machine cleanup code in TmcMotionControlStepPio (
8e71a47) -
Update coverage omit patterns to exclude additional pio files (
84c17b1)
-
Moved pyserial to optional dep and changed casing of optional-dependencies (
b8de0ea) -
Moved unittest files back into tests folder (
4ef6c78)
- Update installation instructions for Raspberry Pi support
(
5d9dbaa)
- Changed pio implementation to easier add Circuitpython #143
(
76d075b)
-
Add wait_for_movement_finished_threaded to run_to_position_steps_threaded (
28ac61a) -
Fix test path in workflow (
5adb9b1)
-
Improve soft stop handling in PIO motion control (
5e05fa6) -
Reduce maximum block size for cruise steps in PIO motion control (
13849a5) -
Update logging levels for movement completion in PIO motion control (
55c0e20)
- Exclude *_pio.py from coverage report
(
85fd355)
- Add PIO-based motion control for TMC stepper drivers (working, but not perfect) #143
(
f716439)
- Remove unused state machine tracking and related attributes in PIO motion control
(
c35a920)
-
Remove outdated CHANGELOG.BAK.md file (
7cadaba) -
Update markdownlint configuration for improved formatting (
ec410c6)
- Test changelog updating
(
dfab353)
-
Correct speed_fullstep calculations in TmcMotionControl class (
a0a4d04) -
Pylint (
c4497a1) -
Update import statement to use TmcComSpiMicroPython instead of TmcComUartMicroPython (
c0c330d) -
Use direct import instead of init.py on micropython and circuitpython (init.py imports everything which needs to much ram) (
19d7109)
-
Renamed changelog, so python semantic release can create a new one (with the correct format) (
b2d20cf) -
Set minimum coverage thresholds for code coverage comments (
be3e152)
-
Moved run_to_position_revolutions method to TmcMotionControl class (
420546b) -
Only validate submodule on CPython (not on Micropython/Circuitpython to save memory) (
fe4a0ce)
- Remove unused speed_fullstep property from TmcMotionControlStepDir class
(
916d18f)
- Correct GPIO pin reference in event detection methods in GpiozeroWrapper
(
1827ffe)
-
Add coverage report omission for specific test files (
e0aa951) -
Remove version declaration from init.py (
42e6ba7) -
Update coverage report configuration to exclude additional lines (
2a073e2) -
Update coverage report to exclude additional test files and add new test for Tmc2209 with gpiozero (
c429e30)
-
Remove redundant assignment in pin check logic (
7293032) -
Remove unused lazy import for TmcEnableControl (
b40bc08) -
Rename workflow from 'Test' to 'CI Pipeline' (
4954905) -
Update CI badge in README.md (
368c292) -
Update coverage badge link in README.md (
f3cd647)
- Update Python version to 3.13 in CI workflow
(
b8300f1)
-
Add unit test for TMC pin functionality and fake I/O class (
8ae956c) -
Add unit test for TMC5160 set current RMS functionality (
bbd3827) -
Add unit tests for different import methods (
8f6126b) -
Add unit tests for TMC move (intramp) (
d1ea07e) -
Add unit tests for TMC move functionality in test_tmc_move_vactual.py (
e616d02) -
Add unit tests for TMC move with step PWM direction and step register (
9070ae0) -
Update import statements in TMC test files (
895f928)
- Rename workflow file
(
df1b1de)
- Readd token to pypi publish
(
3456775)
-
Add missing job names for grype-scan and release jobs in CI workflow (
a05c286) -
Add Python setup and dependency installation steps for semantic release (
821cc90) -
Update build command in pyproject.toml and remove redundant steps in CI workflow (
ccb5b2c)
-
Add fetch-depth option to checkout step in release job (
db1f46e) -
Implement semantic release and package publishing steps in CI workflow (
c279abc)
-
Split unittest and code coverage step (
4e64ab9) -
Update import statements for TMC2209 usage in README (
7e75e6f) -
Update Python version matrix in unittest job (toml support needed for coverage) (
9a15f1d)
- Update README to include test and code coverage badges Unittest and coverage badge
(
f30bd13)
-
Add artifact upload step for coverage comment in unittest job (
2cb9d6b) -
Add coverage configuration to pyproject.toml (
ad90b4f) -
Add example for special register access with TMC2209 in README (
cf1006f) -
Update unittest job to enable coverage reporting and adjust permissions (
bf56353)
-
Add dummy _thread implementation for environments without threading support (CircuitPython) #141 (
dac75ad) -
Add missing classifiers for Python implementations in pyproject.toml (
7e063b3) -
Add safety check before disabling motor in deinit method (
f94a478) -
Changed msres_ms setter to use a lookup table, because math.log2 is not available on CircuitPython #141 (
1646aad) -
Implement lazy import for FtdiWrapper to optimize module loading (
760b224) -
Pylint (
f154f97) -
Reorder reset check for consistency (
95bac7d) -
Simplify gpio_add_event_detect docstring and raise NotImplementedError for CircuitPython (
6a099f5)
-
Add UART and SPI communication classes for CircuitPython #141 (
5daa241) -
Enhance get_time_us function to support CircuitPython #141 (
6addc04)
-
Add assertions for motor position after movement in TestTMCModules (
c04864e) -
Enhance TMC2209 and TMC2240 tests with additional assertions for register checks (
15b30a8) -
Put Spi test in try-except block to prevent errors, if spidev is not available (
4bcf206)
-
Change acceleration_fullstep calculation to use integer division (
e3d3fda) -
Change mres_ms type from bool to int in ChopConf class (
834f07c) -
TmcStepperDriver init docstring (
dde9be1) -
Update max_speed_fullstep calculation to use integer division (
37e6c9d)
- Update action versions in python-publish workflow
(
14a31fa)
-
Add current_pos_fullstep property for fullstep position handling (
5c51150) -
Add dynamic attribute forwarding for TmcStepperDriver (
5e8e873)
- Consolidate microstepping resolution logic in TmcXXXX class
(
8a1d619)
- Add assertions for microstepping resolution and motor speed in TestTMCModules
(
75aa164)
-
Add missing import for Gpio in TmcXXXX driver module (
f598955) -
Add missing import for MovementPhase in demo script (
cd07408) -
Pass ioin argument to test_com method in TmcXXXX class (
1456cd6) -
Pylint (
a1a16aa) -
Pylint (
d6c6620) -
Pylint (
f52ca2a)
-
Added init.py in tmc_drvier module (
4d38270) -
Clean up unused imports and reorganize exception imports in driver files (
90657bf) -
Remove empty demo module files for tmc2240 and main demo (
19e4186) -
Remove unused imports (
9c121ef) -
Remove unused tmc_com property and imports from motion control modules (
c5c5e8e) -
Update demo script descriptions for clarity (
a4eabd4) -
Update import statements and remove wildcard imports (
78a5484)
-
Changed get_bit_width method to calculate bit width manually (micropython compatibility) (
c2689b7) -
Cleaned up demo scripts (
93f88d5) -
Correct duration calculation from milliseconds to microseconds in set_vactual_dur method (
185d96f) -
Moved gpiozero pwm switching into _tmc_gpio_board_gpiozero.py (
c580131) -
Pylint (
d2254a3) -
Remove unnecessary cs_count parameter from SPI configuration (
22277eb) -
Remove unnecessary loglevel and movement settings from demo script (
f28f71a) -
Streamline movement handling in motion control classes (
ef02b52) -
Update motion control to use TmcMotionControlVActual in demo script (
09b6fa9) -
Update SGT threshold to be signed (
a3e7224) -
Update VActual register to support signed values for vactual (
3462873)
-
Add clear_rampstat method to reset ramp status after stall (
997b16c) -
Add demo script for TMC5160 internal ramp generator homing (
ddd1b61) -
Add PWM class protocol to GPIOModuleProtocol (
138a9bb) -
Add reset_positions method to reset position counters (
aa14d29) -
Add stallguard and limit switch event handling in ramp generator (
0b43224) -
Added method to set hybrid threshold speed in TmcXXXX class for hybrid switching between Stealthchop and Spreadcycle (
81e6f11) -
Implement target position property and update current position handling (
e7dc520) -
Unify position reset method naming and functionality across drivers (
ccd9999)
-
Consolidate stallguard setup logic in TMC drivers (
9498d36) -
Streamline GPIO handling and error checking across wrappers (
b20faab)
- Update installation instructions in README.md for editable install
(
5686580)
-
Add setter for speed_fullstep in TmcMotionControl class (
418028f) -
Centralize initialization logic in TmcXXXX class (
a806283) -
Enhance TmcStepperDriver properties with type hints and error handling (
e0d585d) -
Implement clear_gstat_verify method for GSTAT register management #118 (
326ba4b)
- TMC2240: fixed THigh reg addr
- added support for TMC5160
- changed set_current to set_current_rms and set_current_peak
- added typehints
- refactor logger (split micropython and cpython implementation into their own files)
- added clear function for regs
- added str function for regs
- added demo script for homing
- replaced individual register read function with unified read_register method
- TMC5160: added reg defs
- TMC5160: added MotionControl for internal Ramp Generator
-
Remove sys dependency and centralize time function for MicroPython compatibility (
2be9b80) -
Replace individual register read functions with a unified read_register method (
1e8e41a)
- fixed pwm cleanup
- fixed reg definition (seimin in Coolconf of TMC2209)
- added unittests for submodule combinations
- renamed drv_enn to enn in reg def for consistency
- added class TmcXXXX for code shared between all TMC drivers
- changed reg definitions (Tuple of TmcRegFields instead of Array of Arrays)
- moved do_homing() to_tmc_stallguard.py
- do_homing -> added args cb_success and cb_failure
- do_homing now uses tmc_mc instead of static internal motion controller
- removed do_homing2()
- removed driver_address from constructor of COM submodules
- removed _deinit_finished
- fixed reg access in submodules (with callback)
- fixed wrong reg access (TMC2209 iholddelay and en_spreadcycle)
- added validation of submodules
- enhanced TMC2240 set_current function (added rref as argument)
- Changed TmcCom classes, so i does not know the exakt reg defintions and added more Exceptions
(
12fdd47) - formatting and linting
- added typehints for register definitions
- refactored tmc_gpio modules
- refactored tmc_com modules
- dropped support for python 3.9 and older
- added more typehints
- added MicroPico project files for better Micropython support
- moved all project metadata into pyproject.toml
- added support for MicroPython
- added support for relative movements in TmcMotionControlVActual
- added TmcMotionControlException in TmcMotionControlVActual if the VActual reg is not available (TMC2240)
- removed statistics dependency
- added property current_pos_fullstep
- added support for FT232H (can be used on Windows; currently only with TMC2240 and SPI)
- added missing deinit in TmcEnableControl
- fixed RPi4 using wrong gpio lib
- changed init/deinit of classes
- fixed wrong reg adress of IOIN for TMC220X
- fixed driver addr in demo/demo_script_06_multiple_drivers.py
- fixed doubled log output when using multiple drivers
- fixed VActual bit mask
- added PwmConf reg
- added initial value to gpio_setup when using gpiozero (RPi5)
- fixed gstat Exception on TMC2240
- removed spidev dependency from TMC220X
- added TPwmThrs reg
- added custom exceptions
- added TmcMotionControlStepPwmDir
- fixed homing
- increased SPI speed (from 5khz to 8mhz)
- added SPI speed to TmcComSpi constructor
- return status flags as dict received with every SPI read access
- moved StallGuard code into own mixin class
- renamed sgresult and sgthrs reg values in order to have them consistend between drivers
- fixed StallGuard on TMC2240 (diag0_pushpull and diag0_stall needed to be activated)
- added Support for TMC2240
- changed registers to be initialized as Lists (Bitmasks and Bitpositions)
- added Support for SPI
- Split code for EnableControl and MotionControl into their own classes
- added Classes for EnableControl TmcEnableControlPin
- added Classes for EnableControl TmcEnableControlToff
- added Classes for MotionControl TmcMotionControlStepDir
- added Classes for MotionControl TmcMotionControlStepReg
- added Classes for MotionControl TmcMotionControlVActual
- added support for coolstep
- changed library name to PyTmcStepper
- refactored deserialisation and serialisation of register values to use classes
- changed file names according to PEP8
- changed class names according to PEP8
- fixed print output in test_uart()
- use mapping table for mapping gpio library to the board
- make fullsteps_per_rev configurable in constructor
- refactored GPIO access to use inherited classes
- Return status instead of hardcoded True in test_uart
(
5e57e2c) - fixed links in readme
- switched to python 3.13 in unittests
- refactored test_dir_step_en function
- changed Nvidia Jetson detection
- added Orange Pi Support
- added math function constrain
- added function set_speed
- added function set_speed_fullstep
- added demo_script_11_continous_movement
- reworked github actions pipeline (one multi-staged-pipeline)
- added extra error handling for when the UART serial is not set
- added toff setting
- added support for controlling direction during movement over UART
- added demo script for motor movement using only the STEP pin
- decoupled gpio access from gpio library
- added support for Raspberry Pi5 (gpiozero)
- added support for Luckfox Pico (python-periphery)
- enhancement of logging module
- small bugfix
- change logger to use logging module
- small bugfix
- added support for Nvidia Jetson
- added seperate file for GPIO board imports
- changed min python version to 3.7
- removed dependency enum34
- removed dependency bitstring
- changed min python version to 3.6
- changed docstring format to google
- split code into different files
- added logger class
- moved demo scripts into demo folder
- added unittest
- switched all string to f-strings
- fixed do_homing()
- added minspeed to do_homing()
- added TMC_2209_math.py
- added correct StallGuard min_speed calculation
- add pylint github action
- fixed code to pass pylint check
- Added threaded movement
- Added test_script_07_threads.py
- Added softstop
- Added get_movement_phase()
- Change code to snake_case
- Added set_deinitialize_true
- Fixed ifcnt wrap around from 255 to 0
- Added setPDNdisable
- Added setMaxSpeed_fullstep and setAcceleration_fullstep
- Pin parameter order in constructor changed to EN, STEP, DIR
- STEP and DIR pins are optional parameters
- CRC check for read access reply datagrams
- If only zeroes are received an error will be thrown
- Added ignore_delay to StallGuard callback
- Implemented write access retry
- Implemented velocity ramping with VActual
- Add ability to print StallGuard results and TStep in VActual
- If write or read access fails, GSTAT will be checked for driver errors
- Added CHANGELOG.md
- Updated README
- Added number of revolutions as parameter for doHoming
- Added output whether doHoming was successful or not
- Added ability to invert direction in setVActual_rps with negative revolutions