DerAndere1 / Marlin

Optimized firmware for RepRap 3D printers based on the Arduino platform. The branch Marlin2ForPipetBot is optimized firmware for cartesian robots (lab robots, also known as liquid handling robots or pipetting robots)
https://derandere.gitlab.io/pipetbot-a8
GNU General Public License v3.0
52 stars 20 forks source link

Foam Cutter Display #65

Closed rcKeith closed 2 months ago

rcKeith commented 2 years ago

Hi DerAndere1 Thanks for your work on the 4 axis display. I have this issue compiling I followed your instructions and have commented out AXIS4_ROTATES and AXIS5_ROTATES in configuration.h Spent most of today to try and trace it but my skills aren't good enough. Any idea what might be causing this?

Error as below from VSCode Compiling .pio\build\mega2560\src\src\lcd\dogm\u8g_dev_tft_upscale_from_128x64.cpp.o Marlin\src\lcd\dogm\status_screen_DOGM.cpp:506:23: error: macro "BOTH" requires 2 arguments, but only 1 given

if BOTH(AXES4_ROTATES)

                   ^

Marlin\src\lcd\dogm\status_screen_DOGM.cpp:30:0: error: unterminated #if

if HAS_MARLINUI_U8GLIB && DISABLED(LIGHTWEIGHT_UI)

rcKeith commented 2 years ago

The error only happens when I define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER . This is the LCD I have which does work with the default Marlin 2.0 code. It shows a error in \Marlin-Marlin2ForPipetBot\Marlin\src\lcd\dogm\status_screen_DOGM.cpp cannot open source file "U8glib-HAL.h" (dependency of "dogm_Statusscreen.h") I wonder is there some dependency I need to add somewhere Thanks Keith

hobiseven commented 2 years ago

@rcKeith

Hi. I made the initial tests a long time ago on the XY UV foam cutter, and I did write in planner.cpp a speed rule which is MAX ( speed(X,Y), speed ( U,V) ) to be used as the speed of cut for the max wire speed displacement. Have your tried this?

Regarding U8glib, this is not specific to that branch of Marlin with the multiaxis. Should not.... Unless nobody else has tried to compile a multi axis version on something else than STM32.

the piece of code \u8g_dev_tft_upscale_from_128x64.cpp is used to upscale by doubing pixels size to upscale from the small DOGM screen, and place a picture on a TFT RGB display 320x240. This is what we have on the Alfawise u30 STM32 board. For regular / standard black and white display, that should not be called.

There might be a problem in the options you selected in config.h.

rcKeith commented 2 years ago

Hi Hobiseven Thanks for your reply. I've only been testing on a Mega2560 not connected to any motors yet. So not tried your planner.cpp. The reason for this is that I already have a GRBL Mega 5X compiled for the foam cutter https://rckeith.co.uk/grbl-hotwire-mega-5x-for-cnc-foam-cutters/ but it needs a Windows PC with the windows software I've adapted based on GRB-Panel. Several guys have asked can we run the foam cutter like a 3d printer so I started some investigations which have led me here. Yes, it looks like I may have some configuration issues. I'll look into it Thanks Keith

hobiseven commented 2 years ago

Hi, Well, what you are looking for is exactly what this option in Marlin can do. So this is the right website you ended up at! This will work in a standalone mode with if needed firmware in an SDcard reader, and you can actually configure the Gcode reader to use the letters you want to designate the axis systems.

Regarding configuration, you need to be able to compile and then display on the 3 axis systems. Once that works, then I suggest to go for a 5 axis system, and do not use Z. I assume Mega 250 uses the regular DOGM display if I am correct.

If that does not compile anymore, it would mean that there is an error in the definition of the menus/includes of the additional axis. This is possible. As I only compiled for a TFT screen, using pixel doubling, I never tried you configuration , and I do not know wether or not @DerAndere1 did try that on a Mega. He might tell us!

Regards.

DerAndere1 commented 2 years ago

Hi everyone. @hobiseven: for context: Keith asked for a feature to display axis positions on the DOGM display. The error reported here is due to the fact that I just added that feature to the Marlin2ForPipetBot_edge branch but made some typos.

@rcKeith: This shoud be fixed now in Marlin2ForPipetBot_edge. The reason why I added the LCD_SHOW_SECONDARY_AXES feature to the Marlin2ForPipetBot_edge branch is because we need to test both, the newest planner, as well as the position display, anyway. When testing the edge branch, please do not modify planner.cpp for now. just #define FOAMCUTTER_XYUV . That already does what you want: see the code in Marlin2ForPipetBot_edge :

https://github.com/DerAndere1/Marlin/blob/e9f3a607186fa593a16b3930710798db3472a611/Marlin/src/module/planner.cpp#L2122-L2125

I will prepare a seperate pull request for Marlin with just the LCD_SHOW_SECONDARY_AXES feature after everything in Marlin2ForPipetBot_edge works as expected.

DerAndere1 commented 2 years ago

@hobiseven nice to see that you are still active here. If you are interested, you can also test the https://github.com/DerAndere1/Marlin/tree/Marlin2ForPipetBot_edge branch. It contains a mayor overhaul of the planner that now works similar to LinuxCNC for other multi-axis machines. I hope, FOAMCUTTER_XYUV still works as before. You will have to rename LINEAR_AXES to NUM_AXES and make sure the new options AXIS4_ROTATES and AXIS5_ROTATES are not defined. Of cause, also add #define FOAMCUTTER_XYUV. Don't feel pushed, though.

DerAndere1 commented 2 years ago

@rcKeith: When the other people asked "can we run the foamcutter like a 3d printer" I hope they dont expect a slicer to outpt multi-axis G-code. That does not exist. You still have to use a dedicated CAM software to generate the G-code. Also, I am not aware of any G-code sender (host software) that has controls for 4 axes (besides yours). So, using Marlin with the usual G-code senders like pronterface or octoprint will be the same experience as using grblHAL with G-code senders for 3 axis CNC machines (e.g. UGS https://winder.github.io/ugs_website/). It works also for 4 axis foam cutters, but only through G-code, as no buttons for the 4th axis exist in the GUI of the host software.

rcKeith commented 2 years ago

Hi DerAndere1 No, they don't. It's usually because the foam cutter is quite a big machine in an outside workshop where they don't want to leave a laptop or a PC. I have several posts and videos showing how to generate g-code for foam cutters. Thanks for all your work on this. Keith

DerAndere1 commented 2 years ago

Understood. customizing octoprint should be possible. I just saw this plugin for adding custom controls: https://community.octoprint.org/t/adding-my-own-buttons-to-the-control-tab-system-commands-not-gcode/4753

rcKeith commented 2 years ago

Yes, I had thought about that. I use it on my CR-10 V2 it works well on that. Keith

DerAndere1 commented 2 years ago

btw. Keith, is it ok if I add a link to the download section of your home page in my wiki or blog? I like to gather links to software for multi-axis CNC machines.

rcKeith commented 2 years ago

Yes that fine, thank you

DerAndere1 commented 2 years ago

Another combinatiion that might be worth investigating is grblHAL (the succesor of grbl that supports many boards and up to 6 axes) with https://pypi.org/project/bCNC/ (GUI for 3 or 6 axes). octoprint also has support for grbl: https://plugins.octoprint.org/plugins/bettergrblsupport/ . feedrate interpretation might not be as good as with Marlin's FOAMCUTTER_XYUV feature, though.

rcKeith commented 2 years ago

Hi Having these issues when trying to compile with status_screen_DOGM.cpp I have REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER defined in Configuration.h Tried my best to figure it out but no luck. Any help is greatly appreciated. image

Keith

DerAndere1 commented 2 years ago

My bad again. hope it compiles now. Sorry, I dont have the time to test compilation.

rcKeith commented 2 years ago

Thanks, DerAndere1. Compiles fine thank you. Will update you when I have a working system. Keith

rcKeith commented 2 years ago

Hi DerAndere1 I think I spoke too soon about the compilation. I didn't have defined LCD_SHOW_SECONDARY_AXES in Configuration_adv.h. When I defined it I get a #if LCD_SHOW_SECONDARY_AXES expected an expression error. I've attached a screenshot.

Hope I'm not taking too much of your time Thanks

LCD_SHOW_AXIS

DerAndere1 commented 2 years ago

Can you Change that erroneos Line to

#if ENABLED(LCD_SHOW_SECONDARY_AXES)

? Im not at my PC right now

rcKeith commented 2 years ago

Hi DerAndere1 That did it, thank you very much Keith

DerAndere1 commented 2 years ago

Can you attach a photo of how the status screen looks like with LCD_SHOW_SECONDARY_AXES when you have your setup ready? When I have seen the result, I could then further develop this feature to get some of the icons back and squeeze the positions of secondary axes into one small corner of the screen,

rcKeith commented 2 years ago

Hi Yes, no problem it's going quite well. I have been adding some menus and hiding the Z-axis. Will get some pictures out today or tomorrow. Keith

rcKeith commented 2 years ago

Hi DerAndere1 Photo attached of the status screen xyuv-marlin (Medium) Keith .

DerAndere1 commented 2 years ago

When you have time, Can you test the latest Marlin2ForPipetBot_edge ? With your existing configs (LCD_SHOW_SECONDARY_AXES enabled), it should now show the positions for the extra axes in the top right corner instead of the fan icon. This should now allow other icons to be displayed.

hobiseven commented 2 years ago

@rcKeith

So right now, it seems that you have all compiled and working fine on a Mega2560, is this correct? You also have this LCD display with a few buttons, correct? I will have to also recompile on the Mega, as my Foam cutter was initially using the mega + a ramps all running with the Jedicut plugin. It will be simpler for me to reuse the Mega, although I did debug the code initially only on an STM32... Do you have a git accessible with your config please? I have to cut new foam profiles ... Do you also manage the heat percentage?

rcKeith commented 2 years ago

Hi Yes compiled and working on the Mega2560 but haven't actually connected any motors yet to confirm pinouts. Hopefully later this week. The LCD is working with a few custom menus and I have updated the language file as well. I've created a GitHub repository here https://github.com/rcKeith/MarlinFoamCutter but haven't added those changes from your last email. We've been to the vet's this morning with our dog. Had a few problems with him but he's fine now, The heat control is via the D8 connector on the RAMPS board which is the same as the spindle control so I've set that as a percentage reading and altered the language file to say Heat control instead of Spindle. I haven't used GitHub a great deal so hopefully, the repository is OK. I'll add those changes later today. Thanks Keith

https://rckeith.co.uk http://www.rckeith.co.uk

On Mon, 7 Feb 2022 at 11:03, Olivier Briand @.***> wrote:

@rcKeith https://github.com/rcKeith

So right now, it seems that you have all compiled and working fine on a Mega2560, is this correct? You also have this LCD display with a few buttons, correct? I will have to also recompile on the Mega, as my Foam cutter was initially using the mega + a ramps all running with the Jedicut plugin. It will be simpler for me to reuse the Mega, although I did debug the code initially only on an STM32... Do you have a git accessible with your config please? I have to cut new foam profiles ... Do you also manage the heat percentage?

— Reply to this email directly, view it on GitHub https://github.com/DerAndere1/Marlin/issues/65#issuecomment-1031340513, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDLLTZONIEPNRWXB5H7UPDUZ6RHXANCNFSM5NHALHJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

rcKeith commented 2 years ago

Hi DerAdnere1 Have an error at line 741 in dogm_StatusScreen.h It looks like it's trying to reference a macro NEITHER which doesn't; seem to be defined. Keith image

DerAndere1 commented 2 years ago

Ah you have been too fast :D I corrected that error just after asking you to test. Should be fixed already

rcKeith commented 2 years ago

OK, I'll try again tomorrow, thanks Keith

https://rckeith.co.uk http://www.rckeith.co.uk

On Mon, 7 Feb 2022 at 20:06, DerAndere @.***> wrote:

Ah you have been too fast :D I corrected that error just after asking you to test. Should be fixed already

— Reply to this email directly, view it on GitHub https://github.com/DerAndere1/Marlin/issues/65#issuecomment-1031870048, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDLLT2MOOACV6BLXMZ4BPLU2AQ35ANCNFSM5NHALHJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

DerAndere1 commented 2 years ago

Regarding your repository: it is ok to upload a local copy of the source code to your repo, but you lose the old commit history, so it will become more difficult to track authorship and to update your code with changes from upstream. Therefore, it is usually recommended to start with a fork as described below. I wrote down a detailed description of how to do it with VSCode/PlatformIO IDE here: https://derandere.gitlab.io/version-control#:~:text=Using%20Git%20with%20Microsoft%20Visual%20Studio%20Code%20and%20GitLens

  1. fork my repo https://github.com/DerAndere1/Marlin on github: https://docs.github.com/en/get-started/quickstart/fork-a-repo
  2. , then git clone your new remote repo (the fork) to get a local copy under version control that preserves the whole commit history
  3. Switch to the Marlin2ForPipetBot_edge branch of your local repository (git checkout Marlin2ForPipetBot_edge)
  4. Create a new local branch (e.g. called master) from the Marlin2ForPipetBot_edge branch.
  5. Switch to the master branch (git checkout master). Make your modifications and commit your changes to that new branch.
  6. git push the changes to the online repository
  7. You can then go to the settings of your github repo and change the default branch to master: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository
  8. You can delete your old repository on github and rename your new repository later. The warnings can be ignored if your repo was not forked by others.
  9. Clone the renamed repository to continue commiting changes to it.
  10. You can change the description of the repository anytime
rcKeith commented 2 years ago

Hi Followed the instruction you sent and just one repository forked from yours. Thanks Keith

https://rckeith.co.uk http://www.rckeith.co.uk

On Mon, 7 Feb 2022 at 21:22, DerAndere @.***> wrote:

Regarding you repo: it is ok to upload a local copy of the source code to your repo, but you lose the old commit history, so it will become more difficult to track authorship and to update your code with changes from upstream. Therefore, it is usually recommended to

  1. fork my repo https://github.com/DerAndere1/Marlin on github: https://docs.github.com/en/get-started/quickstart/fork-a-repo
  2. , then git clone your new remote repo to get a local copy under version control that preserves the whole commit history
  3. Create a new local branch (e.g. called master) from the Marlin2ForPipetBot_edge branch.
  4. Switch to the master branch (git checkout master). Make your modifications and commit your changes to that new branch.
  5. git push the changes to the online repository
  6. You can then go to the settings of your github repo and change the default branch to master: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository
  7. You can delete your current repository on github and rename your new repository later: https://docs.github.com/en/repositories/creating-and-managing-repositories/deleting-a-repository . The warnings can be ignored if only you contributed changes after the forking.

— Reply to this email directly, view it on GitHub https://github.com/DerAndere1/Marlin/issues/65#issuecomment-1031937939, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDLLTYR7CCDH2CMTVRGQZLU2AZXTANCNFSM5NHALHJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

DerAndere1 commented 2 years ago

Your master branch right now was created from the Marlin2ForPipetBot branch. If you want to base your modifications on Marlin2ForPipetBot_edge instead to get the LCD_SHOW_SECONDARY_AXES feature, as long as you have not added commits to the current master branch, you can

  1. Make another branch the default branch in github
  2. Delete the master branch (in the local and in the online repository) and create the master branch again (git checkout -b master Marlin2ForPipetBot_edge)

If you have worked on the current master branch already, it gets a bit more difficult. one strategy is to:

  1. If needed, commit any work in progress on the current master branch
  2. Make another branch the default branch in github
  3. rename the current master branch to e.g. oops
  4. Create a new master branch based on Marlin2ForPipetBot_edge (short: git checkout -b master Marlin2ForPipetBot_edge). Long version:
    1. Switch to the Marlin2ForPipetBot_edge branch (git checkout Marlin2ForPipetBot_edge) !!!
    2. Create a new master branch based on Marlin2ForPipetBot_edge (git branch master)
    3. Switch to the new master branch (git checkout master)
  5. if needed, git cherrypick your own commits from the oops branch to the master branch
  6. delete the oops branch
  7. push the new master branch to github
  8. make the new master branch the default branch on github
hobiseven commented 2 years ago

Hi folks,

I will really need to recompile the foamcutter to go on a Mega + ramps + display, same as apparently rcKeith is working on. I made a fork out of his repo, but apparently I will have to wait a bit to get things stabilized....

Edit : I tried to compile rcKeith fork, but I get errors, and It compiles sanguino_atmega1284p board... Aren't you basing your design on a Mega???

DerAndere1 commented 2 years ago

@hobiseven: That will be fixed once the steps I recommended above are done.

rcKeith commented 2 years ago

Hi DerAndere1 I think I have Github sorted now. I've just committed Configuration.h and Configuration_adv.h so far. But I'm getting a strange error with Marlin\src\lcd\dogm\status_screen_DOGM.cpp:34:0: error: unterminated #if

if HAS_MARLINUI_U8GLIB && DISABLED(LIGHTWEIGHT_UI)

Yet there is an #endif at the bottom of the file. Spent quite a bit of time today trying to fix it but no luck Keith

DerAndere1 commented 2 years ago

this is fixed with the following change: https://github.com/DerAndere1/Marlin/commit/21f53706951d76b59b9130973a47a7163016624f

to update your master branch you may have to Switch to your master branch:

git checkout master

and add https://github.com/DerAndere1/Marlin as a remote (lets call it upstream). git remote add upstream https://github.com/DerAndere1/Marlin.git

After that, you can update your repo: Make sure you have checked out your master branch, then fetch changes from remote repositories:

git fetch --all

Then merge (or rebase) upstream/Marlin2ForPipetBot_edge into the currently checked out master branch:

git merge upstream/Marlin2ForPipetBot_edge

Followed by a push to your online repo:

git push

How to do this in VSCode + Gitlens extension is described at https://derandere.gitlab.io/version-control#:~:text=Pull%20changes%20from%20remote%20repositories

DerAndere1 commented 2 years ago

@hobiseven the master branch of the Marlin fork by rckeith now is by default configured for a hot wire foamcutter based on the Arduino Mega with RAMPS v1.4 . Happy testing!

hobiseven commented 2 years ago

Hi! Thanks. I will fork the git and start to play! Ready to eat jedicut gcode! @rcKeith did you had a look in any tuning of octoprint to have a basic vertical cutter “guillotine” and 4 axis jog buttons?

rcKeith commented 2 years ago

Hi! Thanks. I will fork the git and start to play! Ready to eat jedicut gcode! @rcKeith did you had a look in any tuning of octoprint to have a basic vertical cutter “guillotine” and 4 axis jog buttons?

Hi Olivier I would hold off for a bit as I haven't tested it on any hardware yet. Haven't looked at octoprint yet but I will later.

hobiseven commented 2 years ago

Ok! If you have not modified marlin core and only made screen changes that s ok… if you made critical changes in the core itself then let me know. I stay tuned. I plan to restart cutting foam in 2/3 weeks .

rcKeith commented 2 years ago

Hi DerAndere1 Almost there on the status screen. Photos attached. I've tried adjusting a few things but made no difference This one is with LCD_SHOW_SECONDARY_AXES LCD_SHOW_SECONDARY_AXES And this with LCD_SHOW_SECONDARY_AXES_LINE LCD_SHOW_SECONDARY_AXES_LINE .

DerAndere1 commented 2 years ago

I left out the axis letters on purpose to save space. I have no Idea why the position values / "??" for the V axis are trunkated. It looks like they are trunkated at the hight of the icon's bottom. I need a photo with LCD_SHOW_SECONDARY_AXES enabled where actual positions values above 100 mm are shown (after homing) to see how much more I can squeeze it together.

DerAndere1 commented 2 years ago

Also: I need a photo of the screen with none of LCD_SHOW_SECONDARY_AXES or LCD_SHOW_SECONDARY_AXES_LINE enabled to see if there is more space at the top left corner.

rcKeith commented 2 years ago

Hi DerAndere Yes, no problem I'll get one later today. Thanks for all your help Keith

https://rckeith.co.uk http://www.rckeith.co.uk

On Wed, 9 Feb 2022 at 12:35, DerAndere @.***> wrote:

I left out the axis letters on purpose to save space. I have no Idea why the position values / "??" for the V axis are trunkated. It looks like they are drunkated at the hight of the icon's bottom. I need a photo with LCD_SHOW_SECONDARY_AXES enabled where actual positions values above 100 mm are shown (after homing) to see how much more I can squeeze it together.

— Reply to this email directly, view it on GitHub https://github.com/DerAndere1/Marlin/issues/65#issuecomment-1033715145, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDLLT3IQCN46QRK6OFXX7DU2JNSXANCNFSM5NHALHJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

rcKeith commented 2 years ago

OK, I'll do that as well. Keith

https://rckeith.co.uk http://www.rckeith.co.uk

On Wed, 9 Feb 2022 at 12:39, DerAndere @.***> wrote:

Also: I need a photo of the screen with none of LCD_SHOW_SECONDARY_AXES or LCD_SHOW_SECONDARY_AXES_LINE enabled to see if there is more space at the top left corner.

— Reply to this email directly, view it on GitHub https://github.com/DerAndere1/Marlin/issues/65#issuecomment-1033718382, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDLLT4TP5BKIHZQRDT5AHTU2JN7FANCNFSM5NHALHJQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you were mentioned.Message ID: @.***>

rcKeith commented 2 years ago

Hi DerAndere The first photo is with axis over 100mm The second is with both secondary commented out in configuration_adv.h LCD_SHOW_SECONDARY_AXES no-secondary

DerAndere1 commented 2 years ago

I tried to reduce whitespace even more and added an option to show the position in the top left. Would be nice to get some feedback on the following combinations. no hurry.

rcKeith commented 2 years ago

Hi DereAndere Getting this error to do with the macro TERN image Thanks Keith

DerAndere1 commented 2 years ago

that should be fixed already in my branch.

hobiseven commented 2 years ago

Hi folks

Maybe this is something that was already done , but I ask as I am not sure.

Can we create a default 4 axis xyuv + wire heat management configuration and get this merged in the marlin release? We could call it foamcutter_xyuv_ramps .... this way no more need to download forks from your repos....

Thanks!

DerAndere1 commented 2 years ago

@hobiseven: we can think about that once this all works as expected. Please test rcKeith's config with my Marlin2ForPipetBot_edge branch and send a picture of the status screen. If you do not need the LCD_SHOW_SECONDARY_AXES feature, there is a foamcutter config since 2021: https://github.com/MarlinFirmware/Configurations/tree/import-2.0.x/config/examples/FoamCutter . If you have improvements or if there exists a project page for a community around a machine that needs different configs, feel free to open a pull request at https://github.com/MarlinFirmware/Configurations .