-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[2.0.x] L6470 - add powerSTEP01 support #13053
[2.0.x] L6470 - add powerSTEP01 support #13053
Conversation
2dfee01
to
7beecdc
Compare
Squashed, rebased, and added a change to use |
6c8b165
to
89c61fb
Compare
Changed to using subclasses to differentiate the stepper drivers and added the ability to select the slew rate used by the drivers.. Also fixed a bug in the pins_debug for DUE. TO DO:
|
e2679a9
to
7ae75c0
Compare
I must have a subconscious hatred of L64XX::chain because, once again, I've undone L64XX_chain => L64XX::chain Say the word & I'll implement L64XX::chain.. |
I think Travis is sick. I see another PR that filed the STM32F1 test. I just dropped the "STM32F1R EEPROM_SETTINGS EEPROM_CHITCHAT REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT PAREN_COMMENTS GCODE_MOTION_MODES" options into a fresh copy of 2.0 and it compiled without errors on PlatformIO. Lots of warnings but no errors. I didn't find a compatible board listing in Arduino. Always got the "Oops! Select an STM32F1 board in 'Tools > Board.'" message. |
We'll just have to disable the STM32F1 test for now. |
6b041f1
to
1c00782
Compare
|
eebcea1
to
25b6a41
Compare
Rebased, squashed, cleaned up…. Almost there…… |
Change the way the array axis_mon is defined and how it's passed to the get_user_input function.
Just in case it's of any use ... Here's the L6470.h file, using the method I stumbled across, made all nice & pretty. If nothing else it could be a convenient source of nicely formatted lines for the final version. I tried using the L6470 stepperX(stepperZ3(L6470_CHAIN_SS_PIN, L64helper_pointer) to get the helper linkage but couldn't get past the compiler errors. I tried that method because, if I remember correctly, the L64XX::set_helper(this) in L6470_Marlin.h has to be of the form stepperX.set_helper(this) to execute during run time. |
FULLY FUNCTIONAL using optional external SPI linked via code within Marlin classes. 1) Went back to the handler/pointer method 2) removed helper class from L6470.h 3) renamed L6470_Marlin class to L64XX_MARLIN 4) removed all helper code and renamed anything that had "helper" in it.
For your consideration... This code is fully functional. The only thing I want to do is rebase the code. I reverted back to your handler/pointer code and got it working. I then removed the helper class from L6470.h and renamed the helper class in L6470_Marlin.h. Here are the Arduino-L6470 files that go with this code.
|
Need to clear the powerup/reset error bits before can set slew rate on L6480/powerSTEP01
Change the way the array axis_mon is defined and how it's passed to the get_user_input function.
FULLY FUNCTIONAL using optional external SPI linked via code within Marlin classes. 1) Went back to the handler/pointer method 2) removed helper class from L6470.h 3) renamed L6470_Marlin class to L64XX_MARLIN 4) removed all helper code and renamed anything that had "helper" in it.
Just rebased the code and now the Y & Z step pulses are gone when using L64xx drivers and when using A4988 drivers.
UPDATE Turns out I was running into software endstops. Looks like they are now always on except if you enable them in configuration.h and then issue a M211 S0 command. |
The Travis test is failing do to the error: 'class L64XX' has no member named 'set_handlers'. I'm pretty sure the reason is Travis is using a different Arduino-L6470 library than required by this PR. FYI - G26_MESH_EDITING is enabled on multiple tests within megaatmega2560-tests. It has been replaced by G26_MESH_VALIDATION. |
I will be offering courses on git usage here in Austin for anyone interested. |
😉 What?!?! You think that a little education might stop me from writing over your work? Others have tried to educate me but I've foiled them all! Yes, I'd like to participate. I'm retired with only Dr. visits on the calendar so I'm pretty open. Thanks for being so patient. Your 3 line set of instructions on how to suck the latest PR code back into my local branch has been very useful. |
Mostly fixing incomplete conversions and upper/lower case issues
I just grabbed the changes since my commit a week ago, fixed the bugs that were introduced and tested the code. It looks to be 100% functional. There are two items of note:
|
Thanks for slogging through my different theoretical approaches to the L6470 code. If the helper method works, that is fine, and is probably the best approach for Arduino-style libraries. |
This PR includes all the changes/corrections of PR #13011. The PR can be killed if this PR is implemented.
This PR adds support for the powerSTEP01 family of steppers from STmicro. The L6480 is a subset of the powerSTEP01.
The code changes are a result of the following differences between the L6470 and the powerSTEP01/L6480:
Selection between the two families is done via the POWER_STEP flag in configuration_adv.h. This flag is used to select the appropriate code and the correct Arduino_L6470 library header.
See PR #12 for my proposed changes to the Arduino_L6470 library. The changes that were made are: