Geeetech A10M Marlin 1.1.9 Firmware

by arifg Nov 19, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment

how do I know which serial port to use?

If you're on Windows, with USB disconnected, press Win+X, select "Device Manager" and go to "Ports (COM & LPT). Then plug in your USB printer cable. If your Arduino driver is properly installed, you'll see an additional COM port pops up in the list. That's your COM port.

I'm getting an error when I try to upload it with Arduino IDE it says that there's an error with baby steps because there is no probe. I don't have a BLTouch, but I commented it out already like it says to above. Any ideas?

You have to comment a few other things. Look what compiler says you in the error description.

Sorry, I'm not really sure what all this means. I've included a screenshot of the errors

Comments deleted.
Comments deleted.

Any chance you could suggest a reason for continually receiving homing failures resulting in a reset command? Worked ok until yesterday.

Hello sir! Nice work of this, thank you. Are you used linear advance? I tried enable this feature but Marlin has this error MIXING_EXTRUDER is incompatible with LIN_ADVANCE. Somebody using LA so i am confused.

I loaded this firmware. It does the G29 measuring but when printing the z axis does not correct anything. i think the same as Mackawaka. is there a solution for this?

I come back to you because I can not print at all with my A10M in 1.1.9. I explain I installed a BLtouch from GEEETECH I disconnected the old Z. sensor until no worries. I do the adjustment of the offset, as in the video on youtube. I modified my startup script and tool change. But here when I run an impression the G29 is testing the level of the board and all I have the info in the console:
Bilinear Leveling Grid:
0 1 2
0 -1.120 -0.416 +0.216
1 -0.950 -0.117 +0.373
2 -0.550 +0.190 +0.858
But when printing the Z does not move at all ... finally remains at 0 and does not shift. You have any ideas?


Make it work for an A20M - the only difference ist the build size and the other display (like an ender 3).
Buildsize 255 x 255 x 255 mm.

the hardware ist same like A10M


Thanks for your work. I loaded your firmware on my A10M yesterday and am enjoying it. As long as there are only two extruders it works great. I attached the guide I used to setup three additional virtual extruders for color mixing. It worked fine on the stock Marlin firmware, but with your version if I select any of the virtual extruders, neither one will function. The print starts, but the extruder motors do not turn. I have tried the startup Gcode in the attached guide and your startup gcode as well as a combination of the two, but whenever I choose any extruder other than one or two, nothing prints. Do you think this is a startup gcode issue, or the firmware?

first of all , Thanks for the post !
But i have a problem .
since uploading this firmware my printer won't home.

without any movement it says straid away "Homing fialed , printer halted . please reset"

I have tryed the following without any result.

  1. Disable the bltouch like you described ( and disconected the sensor )
  2. Enabled/disabled the noice filter
  3. Uploaded it again , to be shure (arduino 1.8.8)

no result .. i can't print at all now.
any sugestions ?

Many thanks
Kevin (The Netherlands)

Initialize EEPROM (load defaults).

Yes , that worked . ( i can print again . , but still can't use the BLTouch . ) Thanks for the quick responce. ( my answer is just a bit late )

Hi hope you can help. I am having an issue with eeprom crc errors. I installed this firmware with minor changes to a couple of values in config. Initialused eeprom. M502. M500, m501 as test ok. Some changes i make using lcd, when saved using m500. M501 has eeprom crc error.

Hi, I'm having the following issue:

Arduino: 1.8.8 (Windows Store (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Build options changed, rebuilding all
In file included from sketch\MarlinConfig.h:33:0,

             from C:\Users\sean\Desktop\Prusa_I3_3Dprinter-Geeetech-A10M-Marlin-1.1.9-with-3D-Touch\A10M_marlin1.1.9\Marlin\Marlin.ino:31:

Configuration_adv.h:1034:15: error: missing binary operator before token "("



Configuration_adv.h:1262:15: error: missing binary operator before token "("

if HAS_DRIVER(L6470)


exit status 1
missing binary operator before token "("

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

I tried using this on my Mac and the Printer stopped functioning altogether. it said homing failed please reset. im new to all of this. I am clueless when it comes to this. I have tried going back to 1.8 to get it to work but getting it to connect with my MacBook has been such a pain. I though it was going to be plug and play. hell no it hasn't. lol any suggestions?

OK...I might be sounding pretty stupid here right now, lol...how do I flash my a10m when I have no idea what I am doing.
I see all the comments here and it all looks french to me.
are you able to put in lamen terms for a complete newbie/novice to understand.
Thanks heaps


The only difference - I used latest Arduino framework for that and it works pretty fine.

Thank you for posting this firmware!! It was very helpful!

Any chance of porting this to the A20M?

I have no idea. I don't own that printer.

I need help configuring it for an a10m without BLTouch. I commented the #define BLTouch out but it gave me a babystep error. Thanks

In the file Configuration.h:

  • Disable BLTOUCH by commenting
    //#define BLTOUCH (Line 720);
  • Disable repeatability test by commenting
    //#define Z_MIN_PROBE_REPEATABILITY_TEST (Line 828);
    -Enable Manual Probe by uncommenting
    #define PROBE_MANUALLY (Line 702)

In the file Configuration_adv.h
//#define BABYSTEP_ZPROBE_OFFSET (Line 752)

Compile and flash.


I just flashed my A10M using the Marlin 1.1.9 from here and I am getting this message in error.

Error:Printer halted. kill() called!
[ERROR] Error:Printer halted. kill() called!

I did a reset
I did a reflash.
I tried first was g28 then that msg came up.
I did a reset then tried it on printer(auto bed level) and same error.

Any insight as what I may have done???

Try to disable DISTINCT_E_FACTORS by commenting
//#define DISTINCT_E_FACTORS in Configuration.h, then re-flash.

Does this Marlin have filament runout sensor enabled?

Yes, of course.

I have a problem with your firmware. The second extruder has very fast speed while printing (about 1000mm/s). The first extruder is working correctly, the problem is only with the second extruder.

Try to reset eeprom first.

I reseted, but I did not help

Indeed. Fixed a bug in firmware, you can try the fixed version now.

Well, lets start with the calibration. Remove tubings from both extruders, send commands:
G1 E50
G! E50

Normally it should feed 50 mm of the filament from both extruders. Mesure the length of the filament moved out by both extruders..

I don't have time to calibrate it right now :/ I have uploaded Marlin 1.1.8 and it is working correctly.

I flashed my A10M with the OEM 1.1.8 & BLTouch but am looking for a good start and end gcode. Will yours work in this case? Also, where would these go?

;Switch Extruder 1 G-Code
M420 S1 ;resume Auto-leveling after extruder change

;Switch Extruder 2 G-Code
M420 S1 ;resume Auto-leveling after extruder change

Yes, it supposed to work with BLTouch/3DTouch as well as 1.1.8. These codes used in "Extruder 1" and "Extruder 2" tabs in Cura's Machine settings.

Cool I'll give it a shot. So they go under each "extruders start g-code"?

Yeah, it works good. A couple things when troubleshooting CURA settings the auto-level at the beginning of each print becomes time consuming. LOL Realistically, it's a cool feature to do at the beginning of every print but I have other printers with auto-level that I check maybe once a week.

Also, the G-code that Cura produces causes an extruder temp pause at every "extruder switch" which occurs on top of the objects print surface. The pause causes oozing globs on that layer which leads to nozzle crashes on following layers and potential missed steps. A work around is to add an "Extruder End G-Code" into the printers settings that make this pause happen outside of the objects print area. Something like "G1 X100 Y25" iffin those coordinates are outside of the objects print area otherwise alter the x and y values. HTH

Thanks for your help!

To avoid temp switches between the extruders which Cura produces, I use a "replace" macro to delete all "M104 T0 S0" and "M104 T1 S0" commands from the output G-code. Open the "Post Processing scripts, add "Search and Replace" macro, add "M104 T0 S0" string to the "Search" box and leave "Replace" box blank. Then add another "Search and Replace" macro and repeate steps for the "M104 T1 S0" string. It will get rid of all unnecessary for the mixing type of extruders temp control.

Somewhere I read about that ... I'll continue to play with things and see what makes more sense. Even though I have quite a bit of experience with 3d printers and CNC routers, I'm certainly not an expert as far as messing with g-code and the software side of things. Heck, I've actually built a dozen CNC routers over the years so, the mechanical piece on these 3d printers isn't too difficult for me to figure out.

Hi i can't get it to work correctly. Using octoprint i get this errors:

Recv: Error:Heating failed, system stopped! Heater_ID: bed
WARNING! Received an error from the printer's firmware, ignoring that as configured but you might want to investigate what happened here! Error: Heating failed, system stopped! Heater_ID: bed
Recv: Error:Printer halted. kill() called!
WARNING! Received an error from the printer's firmware, ignoring that as configured but you might want to investigate what happened here! Error: Printer halted. kill() called!

on 1.1.8 i don't have any issue.
Can you help me fix this? Thanks

Try to re-init the Eeprom from the printer menu. If it won't help, check electricals (heater elements on both hotend and bed). Also check thermistors.

Thank you for your hard work. It works great. Could you tell me what had to be done in the firmware to get the mixer screen to show up. I am trying to get Marlin 2.0.x installed. I have it working but it doesn't have a mixer screen. Thanks

Mixer screen is custom implemented for Geeetech printers, there is no such screen in the original firmware, so there is no #define switches I know of to turn it on. What I have done - compared original 1.1.8 Marlin code with the Geeetech one and transferred all customizations from there to the 1.1.9 code base.

hi I got a bltouch from FYSETC, and I just used your marlin thanks BTW!
The problem is that I got homing failed when G28 is issued.
Can you help me?
I saw somewhere that it is maybe related to endstop noise, I activated it but I got the same issue.
any help?

Glad to help you, but I never had any issues with G28. What axis fails to home properly in your case?

this is not a failed axis if I do any kind of homing it is not homing...
printer halted
failed homing


In this thread issue there is the endstop noise filtering...

but activate it does not resolved, this homing failed...

I found what was the problem... The EEPROM needed to get initialized!!

So does it work now, including auto leveling?

yes I got it to work with the initialize command for the eeprom

I am having a hard time to fix the retraction...
Do you have any idea where to start?

What kind of problem?

retraction 10mm @ 120mm/s still stringing!

Do you hear some kind of abnormal sound from the extruder while retracting?