User Tools

Site Tools


communications

Communications


Commands

G-code

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

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 Mini Delta & MP Select Mini.

Command Format

{CMD:PARAM}

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(){
	$.ajax({
		url: "set?code=M565",
		cache: false
	}).done(function(html) {
	});
}


Get printing status

$.get("inquiry",function(data,status){
	$("#rde").text(data.match(/\d+/g)[0]);
	$("#rdp").text(data.match(/\d+/g)[2]);
	var c=data.charAt(data.length-1);
	if (c=='I')
	{
		$("#stat").text("Status: Idle");
		$("#pgs").css("width","0%");
	}
	else if (c=='P')
	{
		$("#stat").text("Status: Printing");
		$("#pgs").css("width",data.match(/\d+/g)[4]+"%");
	}
	else $("#stat").text("Status: ");
});


Send Control command {P:X} to cancel print

function cancel_p(){
    $.ajax({
		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);
$.ajax({
	url: 'set?cmd={C:T0'+value+'}',
	cache: false
}).done(function(html) {
});


Stop preheat heat bed

$("#clrp").click(function(){
	$.ajax({
		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 through WebSocket interface

<script>
var ws = new WebSocket('ws://192.168.20.164:81');
ws.onopen = function () {
  ws.send("G28");
}
</script>


REST

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

http://192.168.2.150/set?code=G28

Send extended command though REST:

http://192.168.1.155/set?cmd={P:X}


Web Browser Address Bar

While the MP Mini Delta 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

http://192.168.20.113/set?code=G1 X53
http://192.168.20.113/set?code=M563 S6
http://192.168.20.113/set?code=G1 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);
                    Thread.Sleep(100);
                    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.Items.Add(iep.Address);
                        toolStripComboBox1.SelectedIndex = 0;

                        localIP = ip.Address;
                    }

                    client.Close();
                }
            }


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 Mini Delta.


Upload Custom Web UI

  1. Enter http://PRINTERS_IP_ADDRESS/up into a web browsers address bar.
  2. Upload html file using the 3rd upload box.
  3. Enter http://PRINTERS_IP_ADDRESS
  4. Custom Web UI should appear

Default Web UI

  1. Enter http://PRINTERS_IP_ADDRESS/up into a web browsers address bar.
  2. Upload a empty file using the 3rd upload box.
  3. Enter http://PRINTERS_IP_ADDRESS
  4. Default Web UI will appear

Sample Web UI

Moved to it's own page. Sample Web UI


WebSocket

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:

<script>
var ws = new WebSocket('ws://192.168.43.50:81');
ws.onopen = function () {
  ws.send("G28");
}
</script>

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/09/29 22:31 by Matthew Upp