epicycloid
Well-known member
We're currently dead in the water without T3.x's and no working T4.x library. Can anyone help us over the hurdle?
TL;DR
Is there anyone here who might be able to investigate / re-visit the low-level timer changes from T3.x to T4.x to re-implement the original TeensyStep library, *not* the incomplete TeensyStep4 library, on the T4.x?
Can anyone step in and pick up where @luni left off, and get the original TeensyStep library working again on T4.x, even if not at the performance level anyone would expect on the T4.x platform?
The rest of the story...
TeensyStep was a fantastic stepper library, that was unfortunately broken by the low-level timer architectural changes going from T3.x to T4.x.
@luni / luni64 on GitHub / Lutz Niggl is a brilliant guy, but other demands have pulled him away from working on or updating the TeensyStep library.
That said, he was part of identifying the issues in the early T4 beta, and he did take a stab at a completely different programming model, and introduced his partially re-architected TeensyStep4. Unfortunately it isn't finished, has numerous open issues, and is provided with the warning, "Please note: This library is very experimental and no support can be given at the moment." He hasn't edited or updated it in a while now.
TeensyStep on GitHub -- https://github.com/luni64/TeensyStep
TeensyStep4 on GitHub -- https://github.com/luni64/TeensyStep4
The trifecta of the pandemic, chip shortage and EoL of the T3.x all collided to leave our project dead in the water with no path forward. We have a complicated, coordinated motion project, in use by quite a few people, but with no way to move forward now that T3.x's have been discontinued, and a "replacement" T4.x library that isn't fully functional.
Our project, currently with about 40,000 lines of code, is working perfectly with TeensyStep, controlling multiple coordinated stepper motors, with a Nextion touchscreen for the UI.
We have added a controller and stepper motors to a specialized woodturning lathe, known as a rose engine. The project hatched about 15 years ago, and has evolved into a complex and robust system, capable of cutting a wide array of patterns. Examples of pre-controller work, and the lathe that serves as the underlying platform can be read about here: https://www.rogueturner.com/ewExternalFiles/Its small world.pdf and https://www.rogueturner.com/ewExternalFiles/RoseEngine.pdf. Additional articles here: https://www.rogueturner.com/ornamental-obsessions.html
The current project is posted on GitHub here: https://github.com/elfren/RoseEngine_SpindleAndAxis, and documented here: https://mdfre2.colvintools.com
@luni replied to "Is TeensyStep4 an update of TeensyStep or a whole different library?" in the GitHub issues thread here:
https://github.com/luni64/TeensyStep4/issues/4 and lays out a number of issues and why he isn't moving forward with the old model on the newer chips.
An attempted port of our project to the TeensyStep4 library has stalled when we hit various issues. Two of our open issues have yet to be acknowledged here: https://github.com/luni64/TeensyStep4/issues
The architectural changes that were made with the low-level timers in the move from the T3.x's MK64FX512VMD12 / MK66FX1M0VMD18 Cortex-M4F to the IMXRT1062DVJ6 Cortex-M7 of the T4.1, while above my pay grade, is what @luni wrote required a redesign of the entire library.
@luni describes the issue with the peripherals, including PIT timers, running on a separate bus from, and not synchronizing with the ARM core here: https://github.com/luni64/TeensyStep/issues/56
@luni and @defragster discussed here: https://forum.pjrc.com/index.php?threads/teensy-4-intervaltimer-max-speed.57959/#post-218577 and reference an earlier T4 beta thread with input from @Frank B, @KurtE, @manitou, @PaulStoffregen and others here: https://forum.pjrc.com/index.php?threads/teensy-4-0-first-beta-test.54711/page-48. Most of that is w-a-y above my pay grade, I'm just a lurker when I start reading their posts and discussions. But it was clear there was an identified timer and bus issue early on.
Is there anyone here willing pick up the torch and help update the original library to allow us move forward on the T4.x's?
TIA -- epicycloid & @Elf
TL;DR
Is there anyone here who might be able to investigate / re-visit the low-level timer changes from T3.x to T4.x to re-implement the original TeensyStep library, *not* the incomplete TeensyStep4 library, on the T4.x?
Can anyone step in and pick up where @luni left off, and get the original TeensyStep library working again on T4.x, even if not at the performance level anyone would expect on the T4.x platform?
The rest of the story...
TeensyStep was a fantastic stepper library, that was unfortunately broken by the low-level timer architectural changes going from T3.x to T4.x.
@luni / luni64 on GitHub / Lutz Niggl is a brilliant guy, but other demands have pulled him away from working on or updating the TeensyStep library.
That said, he was part of identifying the issues in the early T4 beta, and he did take a stab at a completely different programming model, and introduced his partially re-architected TeensyStep4. Unfortunately it isn't finished, has numerous open issues, and is provided with the warning, "Please note: This library is very experimental and no support can be given at the moment." He hasn't edited or updated it in a while now.
TeensyStep on GitHub -- https://github.com/luni64/TeensyStep
TeensyStep4 on GitHub -- https://github.com/luni64/TeensyStep4
The trifecta of the pandemic, chip shortage and EoL of the T3.x all collided to leave our project dead in the water with no path forward. We have a complicated, coordinated motion project, in use by quite a few people, but with no way to move forward now that T3.x's have been discontinued, and a "replacement" T4.x library that isn't fully functional.
Our project, currently with about 40,000 lines of code, is working perfectly with TeensyStep, controlling multiple coordinated stepper motors, with a Nextion touchscreen for the UI.
We have added a controller and stepper motors to a specialized woodturning lathe, known as a rose engine. The project hatched about 15 years ago, and has evolved into a complex and robust system, capable of cutting a wide array of patterns. Examples of pre-controller work, and the lathe that serves as the underlying platform can be read about here: https://www.rogueturner.com/ewExternalFiles/Its small world.pdf and https://www.rogueturner.com/ewExternalFiles/RoseEngine.pdf. Additional articles here: https://www.rogueturner.com/ornamental-obsessions.html
The current project is posted on GitHub here: https://github.com/elfren/RoseEngine_SpindleAndAxis, and documented here: https://mdfre2.colvintools.com
@luni replied to "Is TeensyStep4 an update of TeensyStep or a whole different library?" in the GitHub issues thread here:
https://github.com/luni64/TeensyStep4/issues/4 and lays out a number of issues and why he isn't moving forward with the old model on the newer chips.
An attempted port of our project to the TeensyStep4 library has stalled when we hit various issues. Two of our open issues have yet to be acknowledged here: https://github.com/luni64/TeensyStep4/issues
The architectural changes that were made with the low-level timers in the move from the T3.x's MK64FX512VMD12 / MK66FX1M0VMD18 Cortex-M4F to the IMXRT1062DVJ6 Cortex-M7 of the T4.1, while above my pay grade, is what @luni wrote required a redesign of the entire library.
@luni describes the issue with the peripherals, including PIT timers, running on a separate bus from, and not synchronizing with the ARM core here: https://github.com/luni64/TeensyStep/issues/56
@luni and @defragster discussed here: https://forum.pjrc.com/index.php?threads/teensy-4-intervaltimer-max-speed.57959/#post-218577 and reference an earlier T4 beta thread with input from @Frank B, @KurtE, @manitou, @PaulStoffregen and others here: https://forum.pjrc.com/index.php?threads/teensy-4-0-first-beta-test.54711/page-48. Most of that is w-a-y above my pay grade, I'm just a lurker when I start reading their posts and discussions. But it was clear there was an identified timer and bus issue early on.
Is there anyone here willing pick up the torch and help update the original library to allow us move forward on the T4.x's?
TIA -- epicycloid & @Elf