Moai Beta Firmware - extended gcode commands - updated 4/27/2019


As described in the update, we are adding new gcode command to allow finer control of the Moai printing process. Please visit for firmware details and leave feedback here

Overview: The extended gcode command allows finer control of Moai during printing. The changes to settings is only temporary for the duration of the current gcode file and will not be saved to the system settings. The command can be inserted at any point of the gcode file as long as it has its own line. The firmware will still work with existing gcode exported from Asura or Cura that do not contain any extended gcode command.

Setting definition change
Z-Follow 0-60 each unit represents 0.1mm the range of value is (-1) to (5)
Z-Follow 0 = -1 mm movement upward during peel
Z-Follow 60 = 5 mm movement downward during peel

For recommended z-follow for general printing, it is now 30 (2mm downward movement)


M1001 X40 ;laser power change to 40
M1002 X5 ;wait for 5 seconds before continuing
M1003 X1800 ;moving build platform arm to z-axis reset spot of 1800 (in the setting) or 180mm down from the top
M1004 X50 ;peel motion 50 has no meaning
M1005 X10 ;change Pm moto speed to 10
M1006 X3 ;change Z Motor Speed to 3
M1007 X12 ;change Z Follows (distance) to 12
M1008 X15 ;change PM Reset Position to 15

download link:


Has anyone tried eSun PLA based resin?

It would be nice to have the possibility to toggle some of the pins connected to “HE2” and “HE1” in gcode to trigger addon devices.

It seems to be already possible to pause the moai from one of the ports, but the details (what pin, what voltage) are missing.



That would actually be increadibly useful as it could be used to control the highly problematic heater situation;
Toggle it specifically when the galvos aren’t doing printer moves. This could basically eliminate the “interference” issue that has become a very common provlem.



M1004 Speed is controlled by the Firmware?



interference issue? I haven’t heard of this, where is this information, and what does it look like?



there is a separate command for setting pm moto speed.



I tried to update but the firmware doesn’t really want to upload. Tried with multiple SD cards (the original that came with the moai too) and tried to format the cards with the appropriate tools too. niet. nada. nil.

Update: after like 10 minutes it seems the moai actually updated the firmware, but now it doesn’t read the SD card anymore. So… I wouldn’t try the beta firmware if I were you



Haven’t heard nor seen any interference and I run the printer with the heater going for 20+ hours at a time.

What is it mean to look like?



The “interference” is the galvos picking up 60hz electrical noise from the heater fan or resistive element. A properly grounded and shielded heater should not be a problem.

IIRC, the problem appears as odd surface distortion and loss of resolution that occurs only when the heater is in use. There are older threads regarding this issue on the forum. The solution for some was to wrap the heater in foil to make a Faraday cage and/or to mount the heater as far from the electronics as possible.



just a quick update… the problem I had upgrading the firmware was caused by --surprise surprise-- a defective card reader. I fortunately had a spare one and now everything is working.

I’m trying a test print right now with the new gcode commands



quick update.

I tried to use the new variable laser power gcode. The idea is to lower the laser power and speed on the perimeters and speed it up in the infill.

unfortunately the beta firmware is pretty buggy and the moai hangs after 40-ish layers



I have got no interference with my convector type of heater. Looks like the fan plays a major role in this issue. Perhaps it even might be partly brought back to mechanical vibration due to this fan?
Any way, I could strongly recommend to use the convector plate with 220V, 200 Watt silicon heater.
See my earlier assembly pictures and explanation.


1 Like


The issue was apparently electrical in nature. The few that reported the issue solved it by shielding the heater with foil. By “convective heater”, do you mean passive plate heater?



Interesting - I don’t think I have seen any of that but I do have mine mounted above the electronics. Perhaps I will wrap it just to be sure and perhaps add some foam spacers to reduce any possible vibration.



can we get the adjusted gcode from you?






Those are very handy concepts of new M commands! Thank you!

I need more control… ppppplease peopoly… :wink:

  1. Is it possible to move the Z up or down AND make it so moving the Z does not trigger a tilt/peel? Or is that now implemented? – it’s a real important feature I need. I must control Z position at all times and when to peel or not peel. I know the risks of damaging the tray or worse – but I’m doing “something wonderful”… Maybe a “Mr. Scott Mode” where there is complete destructive control… LOL!

If not, I’ll have to replace the Moai control system, write my own Galvo controller (sigh that’s no fun), and probably put in a RPi-3 running NanoDLP with the Laser-Galvo plug in. All because all I need is to control the Z position and when to tilt & peel.

  1. I too also need the ability to control external devices with a toggle (high/low).

  1. the m command to move z-axis does not trigger peel.

  2. it would have to be a port on the port. i have to think about this a bit



Perfect, I can work with that (#1). Meanwhile a have external methods to trigger events.



Is that the Z move with no-tilt of the tray?