-
-
Notifications
You must be signed in to change notification settings - Fork 19.2k
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
Marlin build system #6818
Comments
Mostly, it helps if it is a very popular machine. And if it is fairly unique in how it is setup. The big problem with adding new example machines is it becomes a big burden every time the Configuration.h files change. Any simple change results in 30+ files needing to be updated. Please allow me to give you an example. This morning I added (and changed) this in all of the Configuration.h files: #define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle Now... As I'm putting the code in place it would have been wiser to have a numeric value on the UBL_MESH_EDIT_MOVES_Z symbol to control the height. But I didn't want to go back and edit 30+ files again. So, I'm going to just use the Z_CLEARANCE_BETWEEN_PROBES as the base height. That kind of compromise happens again and again because of the number of configuration.h files. |
ok, great, thank you for getting back. lets apply your logic as follows:
is that popular enough?
how can this be determined?
so, based on 3) and 4) - do you see how is it setup?
|
If we use a Configuration.h file set to personalize the firmware generation... I'm not sure how code restructuring helps. MonoPrice Ultimate and Wanhao Duplicator would be reasonable machines to add other than my issue 5. Let's see what the other code maintainers think. (I'm really not that opposed to it... I'm just pointing out why there is some resistance.) |
My plan is to eventually clean up and submit pull requests to add the remaining functionality needed to support the full hardware. But again it all comes down to free time. Currently Marlin supports most of the hardware and can be made functional modifying the configuration.h and configuration_adv.h. In general to effectively replace the stock firmware the following still needs to be added: The ability to set PWM motor current from the display, save pwm motor current to eeprom, update the case light brightness from the display, save the case light brightness to eeprom, and add support for the PCA9632 to enable control of the RGB LED on the front panel. These features are currently implemented in the community release of Marlin for the Duplicator 6. It is just a matter of cleanup and submitting individual pull requests for each feature. The core functionality and details for a few of these items are currently under active development ( see #6797 ) on Mainline and when they get hashed out I will bring them to the community release of Marlin for the Duplicator 6 until mainline has full hardware support. |
Instead of adding new sample configurations it's always possible for someone to maintain their own fork focused on a particular machine. Including a handful of common sample configurations makes sense to help people get started, but 30+ gets a little crazy to maintain. And with the progress on a visual config tool the need for lots of samples is minimized. Maybe instead of including a bunch of sample configs the Marlin website can provide a place to link to forks dedicated to various machines to help people find appropriate configurations. Then it would become the responsibility of the person maintaining that particular fork to keep it up to date instead of burdening the core team with supporting a bunch of config files. |
I like this idea. But my guess is the links would die and need to be taken out of the list. |
Well, the links would be to github repos so they're more likely to go stale than just disappear. But either way now that the site is hosted on github it's fairly easy for anyone to issue a PR to correct something they see wrong. So people who spot dead links would be able to submit an issue about them being dead or a PR to fix them. And people who create forks with configs for specific machines could also create PR's to add themselves to the list or issues if they can't figure out how to do that. |
@Roxy-3D @jhitesma @dot-bob I came up with the following idea:
Please let me know what you think? Thank you. |
You guys maintain configuration files for popular machines? I've got a machine that I designed and built. I've got two of them and they are real popular with me. :-) |
@mperdue : |
Just messin' with you. |
@thinkyhead Scott: can you please comment on "build system" idea? Thanks, Andrei. |
To help discussion here another Idea: Restructure the configuration.h and configuration_adv.h files. Split all the settings in small configuration files according to functionality. So that there might be a cfg_delta.h for the delta printer specific settings. a cfg_bedLevel.h for Bed leveling,.. The example configuration files would then be reduced to just including the cfg_*.h files that apply to the machine. Cartesian printers would not include the cfg_delta.h. Special machine specific settings could then be done after the includes. That way these machine specific defines could overwrite the defines done in the previously included cfg_*.h files. Maintenance would be drastically reduced, as the change described by @Roxy-3D would now only be needed in cfg_bedLevel.h. So one edit instead of 30+. Setting up new machines would be easy as it is basically just copying over the includes from a similar machine and do the hopefully only few settings needed for what makes this printer unique. Maintenance of these examples files could also be a task for the machine owners. Just my 2c though. |
@JustAnother1 Lars: sounds interesting, thank you. |
Cool! Mind if I give it some publicity on Twitter and Facebook? |
+1 |
Please don't "+1" old issues. Thanks. |
@Andrei-Pozolotin did you get the configs added? |
@thinkyhead i think we can close this one |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Hello guys.
What does it take to accept new configuration, i.e. :
Monoprice Ultimate / Wanhao Duplicator-6
https://wanhaousa.com/products/duplicator-6
https://www.monoprice.com/product?p_id=15710
https://github.com/dot-bob/Marlin-Duplicator-6/tree/RC8/Marlin/example_configurations/Duplicator_6
Thanks.
The text was updated successfully, but these errors were encountered: