Useful Zim gcodes

After looking through the following file Ryan uploaded Zim Marlin_main.cpp (Thanks Ryan), I thought it might be useful to start a list of Zim specific gcodes. So here goes:

M1202 - LED strips on
M1203 - LED strips off
M1614 - Get strip LED state (0 or 1)
M1200 - Blue LED on head on (never really found this useful, but wth)
M1201 - Blue LED off
M1615 - Get blue LED state (0 or 1)
M106 S<0-255> - Left fan level (print fan)
M107 - Left fan off
M1663 R<0-200> - Right extruder multiplier percentage (100 is 100%)
M1663 L<0-200> - Left extruder multiplier percentage
M2002 - Shutdown Zim
M1402 - Print the left, right and bed temperatures


M1000 - Stop print
m1400 - Get Marlin Version

There are a few more i’ve found but don’t fully understand. a few i’ve listed below
M1600 - check state
M1601 - Get extrud
M1620 - get speed;
M1623 - get acceleration
M1660 - Set offset
M1661 - Get offset X
M1662 - Get offset Y
M1905 - Raise platform
M1907 - get consumption

1 Like

Thanks guys!
One of my board still doesn’t respond to some of the codes,
Strange stuff.

1 Like

M2001 - lower platform completely and bring the printhead to the middle (Good for the end of a program)

I made a G-Code handbook some time ago… Here´s the link.


M1200 Head Led On
M1201 Head Lef Off

M1602 Read right RFID Tag
M1603 Read left RFID Tag
M1610 Write right RFID “M1610 xxxx…”
M1611 Write left RFID Tag

M1604 Load right Cartridge
M1605 Load left Cartridge
M1606 Unload right Cartridge
M1607 Unload left Cartridge

M1902 Pause
M1903 Resume

M9000 function to put the Z-axis and Head on position for packing

Pause resume seem not working very well

@Nightmare: Thanks!

So here is the latest verison of the G-Code Handbook includinfg the new commands, a better TOC and marks for a holepunch (extremely important for some people! :slight_smile: ):!2097&authkey=!AMIp1e2y3WmnfcM&ithint=folder%2Cpdf or


1 Like

I moved this to a new topic HERE

My son and I sat down yesterday afternoon with the heated bed we had received a few months ago (getting back to the Zim was always a little frustrating) and couldn’t get the software to see the heated bed. reading, research. Finding out a few things including that Zeepro is no longer viable. My son was so excited about it. It was a gift of two birthdays and a christmas and he waited so long. So sad. Anyway, it looks like we will be trying to OctoPi it to make it finally useful. I spent a couple of hours reading the threads. Thank you and Jpod for all your energy given to the community and individuals for this. I’ll watch the tutorials that are linked, Open up the machine and see if I can free up my USB port. I’m a little nervous that if I ask for any words of advice, I might hear, “recycle the Zim and buy a…”

As long as there are users in this forum, you won´t hear something like this. JPOD, Nightmare, and many others did great jobs with their modifications, and the best is: IT REALLY WORKS GREAT.
Our little ZIM can print as good as any other… Makerbot or Ultimaker or however they call them. You just have to configure it right. And that is mostly a matter of experience. You can read hundreds of books about skiing, but you have to do it for yourself to learn it. The same with 3D printing. After a while you´ll see how a Model has to be placed, or you´ll have a feeling for the best layer heigth for the model you want to print. Trail and error. (Or try and error!?)

The steps for switching are:

  • Get a Raspberry Pi (the newer model, the better) and a SD-Card
  • Load the latest version of OctoPi and install it on the SD Card (you can also delete and rewrite the original SD Card from Zim´s Cubieboard “A_10”, due it´s obsolete after the conversion) (look for Tom Sanladerers guide for that on youtube)
  • Take ZIM apart, remove the “A_10 Board” and all attached cables
  • carefully remove the cap from the USB Port of the ZIMBoard. Somebody in the forum described a method with a small drill, worked perfectly for me.
  • flash JPODs firmware on the ZimBoard using the Arduino IDE software and a Laptop on the (hopfully free and working) USB Port
  • connect your RasPi to your Network and to the ZIMBoard
  • Be happy.
    (okay it´s sometimes a bit more complicated, but not impossible. Keep asking if something doesn´t work as desired)

PS: try this LINK

Even though I’d recommend definitely going to OctoPi, you might want to try something out first. Because you typically are slicing on your computer now with OctoPi… there’s no reason not to try this: OctoPrint + Slic3r 1.1.7 + Org. Std. Quality + Magic = Best Prints!

And then upload your GCODE via the /zeepronterface URL.

1 Like

Hi jpod,

I just flashed my Arduino board to the jpod’s branch of software so Octopi would read the two printer head temperatures (thanks for that, BTW jpod!) but I have now noticed that the M1604 and M1605 commands to load cartridges are no longer recognized commands.

Does anyone know alternate commands for this? or is there different way to trigger the cartridges to load?



The two commands were removed, due they are not necessary anymore. In fact, they triggered a script for loading the filament. If you use octopi, you can make your own script for loading the filament and use custom control buttons.

If you still have your lower motors and cartridge bays installed, you may heat up your Printhead and “extrude” 470mm of filament to load the cartridge or retract the same amount of filament to unload it.

Thanks for the link to the video. It’s surprisingly easy to add custom script triggers to Octoprint! I managed to get the filament loading working perfectly.