Invalid Tool Messages

I have a GeeeTech A10T printer. This printer has three extruders but one hotend. After a recent upgrade to OctoPrint I can no longer successfully print multicolor prints with OctoPrint. I didn’t realize it immediately because I wasn’t printing multicolor prints at the time.

OctoPrint is updated to the latest version. The printer is running Marlin 1.1.8. I use Simplify3d, latest version as a slicer.

Prior to whatever upgrade it was, I was using GeeeTech’s color mixer to do multicolor prints, and it worked fine printing through OctoPrint.

Now OctoPrint will not print multicolor prints, throwing multiple on-screen errors indicating that I have selected an invalid tool. The job prints, but it prints in a single color using whichever tool I selected as the first tool to print.

However, the job will print successfully in multicolors if I print directly from Simplify3D via a USB cable.

I’m hoping one of you smart people out there can help a dummy figure out what is going on. I’ve searched the forum and found things mentioning virtual extruders, but I haven’t got a clue how I would configure those.

The logs and screenshots are attached.

Thank you,



What did you already try to solve it?

Searched the forum and web.

Have you tried running in safe mode?

No, safe mode doesn't support multiple extruders

Did running in safe mode solve the problem?


Complete Logs

octoprint.log, serial.log or output on terminal tab at a minimum, browser error console if UI issue ... no logs, no support! Not log excerpts, complete logs.)


Additional information about your setup

OctoPrint version, OctoPi version, printer, firmware, browser, operating system, ... as much data as possible
A10T Firmware is Marlin 1.1.8
Octoprint is 1.5.2
Browser is MS Edge
OS Is Windows 10
octoprint-Conde-01-12-21.log (717.7 KB)
serial-Conde-01-12-21.log (652.2 KB)


Something in your slicer setup is strange - it is queueing temperature commands for heaters that don't exist. Check that you have mixing extruder setup there too. See this snippet from the serial.log:

2021-01-12 11:57:32,049 - Send: N9 M104 S215 T1*47
2021-01-12 11:57:32,052 - Recv: echo:M104 Invalid extruder 1
2021-01-12 11:57:32,053 - Warn: T0 reported as invalid, reverting to T0
2021-01-12 11:57:32,054 - Recv: ok
2021-01-12 11:57:32,056 - Warn: Not queuing T0, that tool doesn't exist according to the printer profile or was reported as invalid by the firmware. Make sure your printer profile is set up correctly.
2021-01-12 11:57:32,059 - Send: N10 M104 S215 T2*20
2021-01-12 11:57:32,071 - Recv: echo:M104 Invalid extruder 2

It is trying to heat T1, but you only have 1 extruder so the printer reports it as invalid.

There's also this issue further down:

2021-01-12 11:57:35,885 - Send: N16 M109 {material_print_temp_wait}*24
2021-01-12 11:57:35,890 - Recv: ok
2021-01-12 11:57:35,892 - Send: N17 M105*17
2021-01-12 11:57:35,898 - Recv: ok T:215.00 /215.00 B:70.30 /70.00 @:71 B@:29

Those sections in curly brackets are supposed to be replaced by the slicer, and they haven't. I'm incredibly surprised the printer has just accepted these, but hey.

So the indication is an issue with Simplify 3d, not octoprint?


I created a multicolor print with Reptier-Host, saved it to a file, and sent it to the printer via Octoprint. No errors, and it looks like it is printing. I won't know how successfully until the morning, but you may have hit on the issue. If it successfully prints, I will repost my issue on the Simplify3d forum.



1 Like

Please humor me and connect to the printer with OctoPrint, go to the Terminal tab and type T0 (Send or type enter), T1, T2, T3, T4, T5 and post the output.

Change the printer profile to 6 extruders, single nozzle and do it again.

Enter the following and then try one more time:

M163 S0 P1.0
M163 S1 P0.0
M163 S2 P0.0
M164 S3
M163 S0 P0.0
M163 S1 P1.0
M163 S2 P0.0
M164 S4
M163 S0 P0.0
M163 S1 P0.0
M163 S2 P1.0
M164 S5


Did as you asked, this is the output:
Tool Change Test.log (1.9 KB)

I'm working on the post to the Simplify 3d form right now.




Here's the link on the Simplify 3d Forum.
(1) GeeeTech A10T Invalid Tool errors - Simplify3D User Forum

The output from the tests I asked for is exactly what I was expecting.
Another test to try:
In OctoPrint, connect to printer (still with 6 extruders defined), send M104 S30 T0 and M104 S30 T1 thru M104 S30 T5.

If these commands with T1 thru T5 error, then I believe we have identified the issue. You should be able to remove any M104 (and M109) commands that specify these tools from the gcode file that didn't print via OctoPrint and it should print successfully.

While you are editing gcode, remove the lines with {} in them or replace the {mumble} with [mumble2] where mumble2 is one of these variable names.


It was as you suspected. I edit the gcode thus:

M106 S0
M140 S70
M190 S70
M104 S215 T0
;M104 S215 T1
;M104 S215 T2
M109 S215 T0
;M109 S215 T1
;M109 S215 T2
G28 ; home all axes
;M105 ; report temps
;M109 {material_print_temp_wait} ; wait for hot end to reach temp
;M105 ; report temp
;M190 {material_bed_temp_wait} ; wait for bed to reach temp
T2 ; Select Spool 2 - Left

I did not replace the bed and extruder temp wait sequence as I could not figureout the correct replacements, and I don't understand the difference between the { and the [.

Ideally I'd like to figure out the correct replacement as without them I have to wait for the printer to preheat and manually start the job.

I'm also wondering if there's a way to fix this within Simplify 3d so I don't have to manually edit my gcode.

I'm sending a test job to the printer, and if it successfully prints I will post this in the Simplify3d forum.


Are there any settings in Simplify 3D the same as OctoPrint, to enabled a 'mixing' extruder? I have never used it, but I feel like this should be there given what I know about other slicers. If there is not, then to be honest (though I appreciate you have probably paid for S3D) use a different slicer that can do colour changes with mixing extruders properly.

The difference between {} and [} is that Cura uses {} to delineate a variable substitution and S3D uses [] to delineate a variable substitution (Cura has a much richer and better documented set of variables).

The closest replacement for:
;M109 {material_print_temp_wait} ; wait for hot end to reach temp
would be:
M109 S[extruder0_temperature] ; wait for hot end to reach temp

The closest replacement for:
;M190 {material_bed_temp_wait} ; wait for bed to reach temp
would be:
M190 S[bed0_temperature] ; stabilize bed

Note: In the sequence of gcode you posted, both the M109 and the M190 have already been issued so there's no need to do it again. Just delete those lines from your start gcode.

I believe you can fix it with:
Under the Tools menu, select Firmware Configuration. Select the FFF tab and remove the T# from Set Extruder Temperature and Stabilize Extruder Temperature.

This won't prevent S3D from outputting multiple commands, one for each extruder, but it will output commands that your firmware will accept.

Below is the window I'm talking about. The above change hasn't been made yet.


Sorry for the delay. YOU FIXED IT! It took a couple of days as the A10T stopped printing correctly. Took a lot of troubleshooting to figure out why. I replaced the Bowdon tubes between the gear motors and the hot end as they were getting ragged. What I did not realize was the tubing I bought was slightly oversize, so it was never fully seating in the hot end, allowing monumental jams. The tubing I bought was highly rated on Amazon. Anyway:

The changes you suggested resolved the problem. I made the changes permanent in a custom firmwear file, so now things work.

Thank you so much.


1 Like