Marlin
Marlin copied to clipboard
Add 4 axis CNC configuration for MiniRambo board
Description
Add new board definition MiniRambo_CNC based on MiniRambo definig I instead of E0 axis. Add configuration and advanced configuration utilizing the new board definition. (Crude?) Fix to get M907 to compile, when no E-axis is present. Add LCD_INFO_SCREEN_STYLE 2 for displaying X, Y, Z and I/A axis.
Requirements
This requires a MiniRambo Board and a standard RepRapDiscount LCD board, e.g. from an old Prusa i3mk2s.
Benefits
I allows using the above board to control four independent CNC axes and displaying their position on the display. The board definition and configuration is also an example how to use other axes than X, Y, Z, E, as well as how to enable
EMERGENCY_PARSER REALTIME_REPORTING_COMMANDS M114_REALTIME and FULL_REPORT_TO_HOST_FEATURE
which come in handy when using such a setup as general CNC.
Configurations
[Configurations.zip] (https://github.com/MarlinFirmware/Marlin/files/14668853/Configurations.zip) Configuration.h and Configuration_adv.h are currently also included in this request, but should better be headed to https://github.com/MarlinFirmware/Configurations/tree/bugfix-2.1.x.
Related Issues
This needs the fix for #26889 to compile and is the test case for this fix.
You'll need to revert changes to Configuration.h & Configuration_adv.h and post those in a a PR to our Configurations repo as a new config. You can then create a test to use the config for PR/commit CI checks.
in Marlin\src\inc\Conditionals_LCD.h
it does #undef TEMP_SENSOR_0, so in the configs #define TEMP_SENSOR_0 1 might as well be 0
pins_MINIRAMBO_CNC.h is nearly a 1:1 copy of pins_MINIRAMBO.h with some minor tweaks, so I'm not sure why we need to duplicate it. Nearly every Marlin-supported motherboard can be used for non-3D printing things.
We can then use CNC / I axis-related defines in a MINIRAMBO test and/or a generic CNC config in the Configurations repo.
in Marlin\src\inc\Conditionals_LCD.h it does
#undef TEMP_SENSOR_0, so in the configs#define TEMP_SENSOR_0 1might as well be0
@classicrocker883 and @thisiskeithb: Thanks for taking the time and pointing out the necessary changes. @thinkyhead: Thanks for making the changes.
pins_MINIRAMBO_CNC.his nearly a 1:1 copy ofpins_MINIRAMBO.hwith some minor tweaks, so I'm not sure why we need to duplicate it. Nearly every Marlin-supported motherboard can be used for non-3D printing things.We can then use CNC / I axis-related defines in a MINIRAMBO test and/or a generic CNC config in the Configurations repo.
@thisiskeithb It was my codebase/configuration which caused me to find bug #26889 and it took me a while to get it working. I added it here in case someone finds it useful. I you don't find it to be suitable in the codebase, feel free to ignore it.
If there is an option to leave the pins_MINIRAMBO.h and the rest of the codebase as it is and redefine everything I did in there in the configuration files instead, that is even better. I did not have enough insight into the codebase yet, to be sure what I could redefine in the configuration files without breaking something.
Typically for a custom config that requires pins adjustments, we'll just put overrides in the configs, or at most add one or more special clauses to the existing pins file. So far I've just made edits to bring the code style into compliance. The next step will be to make a configuration (at MarlinFirmware/Configurations repo) that does as much as can be done without needing to alter a pins file, then we'll strip down pins file changes to the minimum, possibly removing them altogether.
I posted the configurations, as provided, to the examples repository. You can view them as differences here. (Wait patiently for the page to load and it will scroll to the anchor.)
If you want to apply further changes to the configurations, submit a PR to the MarlinFirmware/Configurations repo, using the import-2.1.x branch to make any needed changes. For example, you might want to enable the laser or spindle.
Thanks for the submission!