User Tools

Site Tools





Standard Marlin compatible G-codes can be found at the RepRap wiki: G-code.
Not all standard G-code are supported by the MP Select Mini.

See the G-code page for information about software to use and how to send G-code.

Extended G-code

See the Extended G-code Table for G-code that is more or less specific to the MP Select Mini & Malyan printers.

Command Format


Start byte: "{"

Command string: CMD. Please reference to available command list. 

Divide byte: ":"

Value string: PARAM

End byte: "}"

Available Commands

CMD PARAM function
P X Cancel print
H Homing
P Pause print
R Resume print
M Print cache.gc
C T0000 Set T0 temperature
P000 Set hotbed temperature
e e Return printing status
M Return mac address

Sample Code for Web UI

Sample Web UI

Moved to it's own page. Sample Web UI

Send GCODE M565 to start print file cache.gc

function start_p(){
		url: "set?code=M565",
		cache: false
	}).done(function(html) {

Get printing status

	var c=data.charAt(data.length-1);
	if (c=='I')
		$("#stat").text("Status: Idle");
	else if (c=='P')
		$("#stat").text("Status: Printing");
	else $("#stat").text("Status: ");

Send Control command {P:X} to cancel print

function cancel_p(){
		url: "set?cmd={P:X}",
		cache: false
	}).done(function(html) {

Set extruder temperature

function pad(num, size) {
    var s = "000" + num;
    return s.substr(s.length-size);

var value=pad($("#wre").val(),3);
	url: 'set?cmd={C:T0'+value+'}',
	cache: false
}).done(function(html) {

Stop preheat heat bed

		url: "set?cmd={C:P000}",
		cache: false
	}).done(function(html) {

Set printing speed

1X Speed: {C:S10}
1.5X Speed: {C:S15}
5X Max

Send gcode though WebSocket interface

var ws = new WebSocket('ws://');
ws.onopen = function () {


Using AJAX and REST a single line of code g-code can be sent without a socket connection.

Send extended command though REST:{P:X}

Web Browser Address Bar

While the MP Select Mini V1/V2 is connected to WiFi you may use the format http://PRINTERS_IP_ADDRESS/set?code=G-CODE_COMMAND to send a single line of code g-code using a web browsers address/URL bar. See the examples in the following code block.

Format: http://PRINTERS_IP_ADDRESS/set?code=G-CODE_COMMAND X53 S6 X Y

When a command is sent and received successfully the browser should display `Ok`, `OK`, or `ok`. Additional g-code commands can be sent one after another using the same format.

Network interface

UDP Interface

MM32 will response UDP broadcast or unicast on port 6000.

Command: “{e:e}” will reply with current status; “{e:M}” will echo MAC address.

Below is sample C# code for discovery MM32 in local network.

            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

            for (int i = 0; i < interfaces.Length; i++)
                if (interfaces[i].OperationalStatus != OperationalStatus.Up) continue;
                IPInterfaceProperties property = interfaces[i].GetIPProperties();
                foreach (UnicastIPAddressInformation ip in property.UnicastAddresses)
                    //textBox1.Text += ip.Address + Environment.NewLine;

                    if (ip.Address.AddressFamily == AddressFamily.InterNetworkV6) continue;
                    if (ip.Address.GetAddressBytes()[0] == 255 || ip.Address.GetAddressBytes()[0] == 0) continue;

                    UdpClient client = new UdpClient(new IPEndPoint(ip.Address, 0));
                    IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 6000);
                    byte[] buffer = Encoding.UTF8.GetBytes("{e:e}");
                    client.Send(buffer, buffer.Length, iep);
                    while (client.Available != 0)
                        byte[] data = client.Receive(ref iep);
                        //textBox1.Text += Encoding.UTF8.GetString(data) + Environment.NewLine;

                        //if (Encoding.UTF8.GetString(data).Contains("}")) textBox1.Text += iep.Address;
                        string str = Encoding.UTF8.GetString(data);

                            var regex = new Regex(@"\d+");
                            MatchCollection mc = regex.Matches(str);

                            if (mc.Count == 4)
                                notifyIcon1.Text = "Extruder:" + mc[0].Value + "°C Target:" + mc[1].Value + "°C\nPlatform:" + mc[2].Value + "°C Target:" + mc[3].Value + "°C";
                        toolStripComboBox1.SelectedIndex = 0;

                        localIP = ip.Address;


TCP Interface

The printer also supports TCP interface instead of COM port to send G-code. Create a TCP socket on port 23 and send G-code as a string to receive a response.

  • Send empty line included LF/CR character to flush garbage in buffer.
  • Handle RST(reset) signal properly by closing the current connection and open a new socket to recover from disconnect.

The printer by default will accept two TCP connections. If a single connection sends a command, both connected sockets will receive same response message.

Use a program like PuTTY or another Telnet client to connect to the MP Select Mini.

Upload Custom Web UI

NOTE: You'll need to be using at least UI Controller firmware version 42 to enable this feature.

  1. Enter http://PRINTERS_IP_ADDRESS/up into a web browsers address bar
  2. Upload html file using the 3rd “Choose File” button
  3. Click the “Upload web” button
  4. Enter http://PRINTERS_IP_ADDRESS
  5. Custom Web UI should appear

Default Web UI

  1. Enter http://PRINTERS_IP_ADDRESS/up into a web browsers address bar
  2. Click the “Upload web” button (don't bother with the “Choose File” button
  3. Enter http://PRINTERS_IP_ADDRESS
  4. Default Web UI will appear

Sample Web UI

Moved to it's own page. Sample Web UI


The printer provides a WebSocket server for integrating control panel using a Web UI. Below is sample Javascript code to send G28 command though the WebSocket:

var ws = new WebSocket('ws://');
ws.onopen = function () {

Using JavaScript along with the WebSocket, you can create a custom Web UI.

WebSocket Test Page

Moved to it's own page. WebSocket Test Page

communications.txt · Last modified: 2017/10/08 12:54 by Matthew Upp