Wont compile with EXTRUDERS 0

Hi all, just passing the time playing with this skr v1.3 board trying to configure it for a LowRider with dual Y and Z endstops and a Laser. I have it all going now but out of interest I wondered what you guys did to allow setting EXTRUDERS 0 in Configuration.h, if I try that it errors during compile. I did see an earlier post that suggested it might be an earlier version of Marlin2 but I am using v2.0.5.3, which appears to be the latest.
There was also errors from the TMCSteppers library and the upload_extra_script.py file - but I sorted those…so…I wonder why the Extruders 0 wont work for me?

Can you post the error?

Just checked my source file for my MPCNC and I have

// This defines the number of extruders
// :[1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 0

set.

I don’t get a compilation error. This is using the V1Engineering current Marlin firmware.

Marlin v2.0.5.3 downloaded from https://marlinfw.org/meta/download/ so that is probably where the discrepancy arises. The V1 version is based on the bugfix version whereas the official Marlinfw has incorporated the bugfix and main branches. The Marlinfw version is later than the V1 version…go figure!. There were other problems with the compile as I said - the TMCStepper library has to be downgraded to v0.6.2 and the upload_extra_script.py file has to edited to insert brackets around Print statements in order to pass compile time.
As I said it’s no biggie, I don’t intend to use this skr board, I’m just trying to improve my understanding and I have downloaded so many different configuration files and versions my head was spinning! I didn’t use the V1 version.

We merged in a test with EXTRUDERS=0. It is for the rambo board, but it should still keep new code tested against EXTRUDERS=0.

https://github.com/MarlinFirmware/Marlin/blob/2.0.x/buildroot/share/tests/rambo-tests#L24

I have read that atom doesn’t work with skr boards. Maybe that is causing the python issues, or maybe the compiler issues. Visual studio code seems to be better supported ( :frowning:)

I’m using VS.

Sorry but your post doesn’t mean much to me…I can only state that the official Marlin 2.0.5.3 doesn’t compile (for me) when you set EXTRUDERS 0. Of course it may have something to do with the other options I have enabled…dual Y motors and endstops, dual Z motors and endstops, Laser PWM, Spindle enable (via an external relay module). I don’t understand enough to understand exactly what the error message is telling me, something I suspect lots of others suffer from :-).
The ‘fix’ for the extruders 0 problem I am having with the skr board is to re-map the E0 and E1 pins in pins_BIGTREE_SKR_V1.3.h as per the Mega2560/RAMPS method

The test thing is just me saying that it should be supported in all future versions, since we have a test case, and new code shouldn’t be accepted unless it passes the tests.

Can you share your configuration and configuration_adv.h? I will see if I can get some time later to take a look. My guess is that something else you have enabled doesn’t work with extruders zero. So maybe we need another test case.

FWIW, that error message makes complete sense, but it shouldn’t be executing that code id there are no extruders. Something is enabling the hot end offset in your version, but not the standard test case.

Sure…https://gofile.io/d/fRIU2f

I’ll edit the configuration.h and configuration_adv.h files from the V1 version to see if I can find the problem too

This doesn’t look like a config file from 2.0.5.3. It looks like it is from Ryan. If you’re compiling this with 2.0.5.3, then any adjustments they made between versions will lead to problems. You should either use Ryan’s firmware, with Ryan’s config file, and edit it for the skr/boards you have, or you should start with the Marlin 2.0.5.3, configure it for your board, and then add in all the CNC configuration stuff. 2.0.5.3 with Ryan’s config is going to lead to compile errors.

This also has EXTRUDERS = 1. I think there was some confusion on what I was asking, maybe? I was hoping to get the one with EXTRUDERS = 0 that you made. The one that created that error message.

Yes…it had EXTRUDERS 1 because it won’t compile with EXTRUDERS 0 and I wanted to have it working on the board :slight_smile: The config files I uploaded were the ones that lead to the compile errors…just swap extruders to 0 and it will fail.

I did say that my head was spinning with different versions downloaded from all over the place so I cannot deny what you say about the config files looking out of place could be right.

I have now configured a freshly downloaded Marlin2 from the V1 github and have it configured correctly for me, it would seem that I now know my way around well enough to configure Marlin2 for a LowRider with a skr v1.3, dual Y and Z and a Laser. Thank you everybody for your help. On to the next issue…the display!

2 Likes

Solution to compile without errors:
When Extruder is 0
you have only 3 axis x, y und z.
So you need only 3 values in
Configuration.h
DEFAULT_AXIS_STEPS_PER_UNIT
DEFAULT_MAX_FEEDRATE
and so on

Configuration_adv.h
AXIS_RELATIVE_MODE

It runs me mad that time until I found that hint somewhere in the net.