FEATURE REQUEST: Web Based Control Interface (Remote Control)

I would like to see some sort of web based control (or even a smartphone app) for the Snapmaker 2.0.

At a bare minimum, a status page would be nice, so you can check work progress without having to physically be at the tool

I’ve noticed a theme with 3D printing in general is that not many people have their printers right next to their computers that they regularly work on. Many of us have used 3rd party solutions (i.e. OctoPrint) to bridge this gap with other 3D printers.

The SM2, I feel, is in a different category and could benefit from a Native solution.

I know about OctoPrint. Used it on my Tevo Tornado. Used it even more on my Tronxy X5S. But neither of those even came close to the specs of the SM2. Also, I tried OctoPrint with my A350, and just didn’t like it for some reason. Maybe its because I like the intuitiveness of Snapmaker’s Interface. And when printing from OctoPrint, some built in features (Filament Runout, Power Loss Recovery) become null.

The fact that the SM2 already includes Wi-Fi was a plus to my purchasing decision. And the ability to connect from Luban via Wi-Fi and send a print directly to the machine is great.
I prefer to not print directly from my PC so I use the Send Via Wi-Fi option for pretty much every print. But once printing, cannot check status without physically going to the printer, or guessing how much is done from viewing my camera.

A Remote interface native to the Snapmaker 2.0 I feel is a great way to add more control options for users.


Agreed it would be great! I am sure it is planned for the future. An app would be even better with a potential future control camera so that we can check what’s going on, with maybe push notification functions!

1 Like

It appears to me that the touchscreen is essentially an Android phone (which is essentially Linux), so from a functionality perspective the touchscreen should be able to run Octoprint natively.

I’ve been looking to find the specifications for this but haven’t found anything that could confirm my understanding.

They have an API for controlling it remotely. Apparently it is how Luban works even. Here is my thread where it came up…

Does not help me yet because it does not allow just “read-only” status methods, but takes full control (which I did not want for my purposes).

Hi. Since I have managed to implement all necessary Commands and Buttons to manage my A350 using octoprint, I have never used the touch screen nor Luban again.

My combination with CURA & Octoprint works perfect. In Addition I control my Exhaust FAN and LED Light of my Enclosure.

With the new spool manager plugin (currently I have over 30 different filament spools) the print history plugin and many many other great plugins octoprint is currently the best web based control for my snapmaker 2.0 A350…

Sure you need some time to invest and optimise octoprint for you, but after you come round this you get a perfect remote management tool. Even per anroid app (remote controlled)… :slight_smile:


Beautiful OctoPrint Setup. I wouldn’t mind knowing how you got everything working. Does filament runout and Power Loss Recovery work?

And like I stated in my original post, OctoPrint is great.

But, I just think that if the SM2 could provide something natively (even if it runs a variation of OctoPrint in it’s firmware such as @ITmaze mentioned) it would only add to the draw of the machine. If its a feature a lot of people are going to use anyway, why not make it native? And that’s my push here.

1 Like


I have to figure this out, but if I am not completely wrong everything should be part of octoprint’s configuration file. And you are fully right, there are also some negative effects of it.

  • No filament Sensor status handover is part of snapmakers firmware, so at the moment no such “trigger information” could not be handed over to octoprint per gcode

  • I haven’t tested it, but I think I have seen such plugin for other 3d printers. Maybe such plugin could handle the power loss, and the print job could be re-covered, cause octoprint would manage everything and could handle the print job if the communication to SM2 would be interrupted.

But as an alternative you could use a UPS (Universal Power Supply) to come over a power failure of 10 to 20 minutes with a small invest. Any small IT UPS cost 100 to 200 EUR / USD with the appropriate power. SM2 need max at 260 to 300 Watts (i have a power meter to monitor the power usage of my SM2).

On the other hand the main advantages I see in using octoprint as the main server to remote control the SM2 are much higher than the cons mentioned above.

  • Fully migrated and Web based
  • Web Cam
  • Customize any Button / command Controll e.g. to change filament (multi color Print) with Cura or any maintenance work using Marlin GCodes.
  • Enclosure trigger to maintain LED, FAN and Sensor are GCode based to control them with octoprint.
  • Stop / Start / and customize the web interface
  • almost a hundred of plugins. Heavy Update and development.
  • Full Control of WIFI / G-Code File Transfer & Reusability of Print Jobs
  • Re-download over WIFI of Print Jobs (its G-Code file)
  • Data Backup Routines of gcode / configuration (daily, and so on …)
  • Filament Manager & Print History …
  • and real time G-Code 3D Simulation of Print Job.

So all negative aspects in using LUBAN and WIFI (touch screen) with the current sw and firmware release have been overcome with octoprint.


Find attached the necessary configuration of my Octoprint setup.
Please note, that this is not the full set up of octoprint, which will be generated by octoprint and any necessary plugin themself.

Below you find the configuration of the plugin “Custom Control Editor (0.2.2)” to remote controll Snapmaker as shown in my screenshot starting with line “controls”: Before you find a list of Plugins i have used. But this depends on what you need and want to use. :slight_smile:

I would suggest that you use the editor of Custom Control within the webgui, and you should not directry edit the octoprint config file “config.yaml”. This because I run into several issues that octoprint did not start anymore because of some config file mismatches in my manually edited code.

But you can figure out any gcode i have used. Feel free to edit this according to your needs.

- plugin_prettygcode
- plugin_PrintJobHistory
- plugin_DisplayLayerProgress
- plugin_action_command_prompt
- plugin_display_eta
- plugin_octolapse
- systemmenu
- settings
- plugin_announcements
- login
- plugin_logging
- plugin_pi_support
- plugin_webcamSB
- state
- plugin_sidebartempgraph
- plugin_firmware_check
- connection
- files
- plugin_SpoolManager
- plugin_action_command_notification
- plugin_dashboard
- plugin_consolidate_temp_control
- terminal
- plugin_SpoolManager
- plugin_prettygcode
- plugin_gcodeviewer
- plugin_octolapse
- plugin_filemanager
- plugin_PrintJobHistory
- plugin_resource_monitor
name: SnapMaker

  • children:
    • command: M1010 S4 P%(speed)s
      confirm: null
      • default: 100
        name: FAN
        parameter: speed
        max: ‘100’
        min: ‘0’
        step: ‘5’
        name: FanSpeed
    • command: M1010 S4 P0
      confirm: null
      name: FAN off
    • command: M1010 S3 P%(power)s
      confirm: null
      • default: 50
        name: LED
        parameter: power
        max: ‘100’
        min: ‘0’
        step: ‘10’
        name: LEDpower
    • command: M1010 S3 P0
      confirm: null
      name: LED off
    • children:
      • commands:
        • G1 Z320 F3000
        • G1 X 0 Y340 F3000
        • G28
        • ‘’
        • ‘’
        • ‘’
          confirm: Go To Home Position OK?
          name: Home Position
      • commands:
        • G1 Z250 F3000
        • G1 X 280 Y150 F3000
        • G1 Z150 F2000
        • ‘’
        • ‘’
        • ‘’
        • ‘’
          confirm: Go To Maintenance Position OK?
          name: Maintenance Position
      • commands:
        • G1 Z250 F3000
        • G1 X0 Y0 F3000
        • G1 Z20 F2000
        • ‘’
        • ‘’
          confirm: Go To X/Y = 0 OK?
          name: X/Y Zero Position
      • commands:
        • G1 Z200 F2000
        • G1 X300 Y100 F2500
        • G1 Z160 F2000
        • ‘’
        • ‘’
        • ‘’
        • ‘’
        • ‘’
        • ‘’
          confirm: Go To Extruder Cleaning & Filament Change Position OK?
          name: EXTR CleanUP
      • command: M104 S205
        confirm: Extruder Heating up to 205C - OK?
        name: HeatUP Extruder
      • command: M104 S0
        confirm: Cool Down Extruder OK?
        name: Extruder Cooling
      • command: M140 S50
        confirm: The HeadBed will heat up to 50C - OK?
        name: HeatUp Bed
      • command: M140 S0
        confirm: Cool Down Bed OK?
        name: TurnOFF HeatBed
      • children:
        • command: M114
          confirm: null
          default: ‘’
          name: Get Position
          regex: X:([-+]?[0-9.]+) Y:([-+]?[0-9.]+) Z:([-+]?[0-9.]+) E:([-+]?[0-9.]+)
          template: ‘Position: X={0}, Y={1}, Z={2}, E={3}’
          layout: horizontal
          name: Get Position
          layout: horizontal
          name: Maintenance Control
          layout: horizontal
          name: SnapMaker Enclosure
  • children:
    • commands:
      • G1 E80 F300
      • ‘’
        confirm: Load or Extrusion of Filament OK? (80mm)
        name: Load / Extrude Filament
    • commands:
      • G1 E-120 F250
      • ‘’
        confirm: Really want to unload current Filament?
        name: Unload Filament
        layout: horizontal
        name: Filament Exchange

This is the printer Profile for my Snapmaker A350 i have used in octoprint it you want to compare your settings with mine.

You find this in directory basedir\printerProfiles\ and config file named “_default.profile”.

This setup applies only to A350. Change this according to your Snapmaker you have bought.

inverted: false
speed: 25
inverted: false
speed: 3000
inverted: false
speed: 3000
inverted: false
speed: 2000
color: default
count: 1
nozzleDiameter: 0.4

    • 0.0
    • 0.0
      sharedNozzle: false
      heatedBed: true
      heatedChamber: false
      id: _default
      model: Snapmaker A350
      name: Snapmaker
      x_max: 326.0
      x_min: -19.0
      y_max: 350.0
      y_min: -10.0
      z_max: 334.0
      z_min: 0.0
      depth: 350.0
      formFactor: rectangular
      height: 330.0
      origin: lowerleft
      width: 320.0

Additional Screenshot showing some Plugin Features of Octoprint.

This to give others some more impression of the “feature richness” by using octoprint:

3D real Time Gcode “Monitor”:

Filament Manager Plugin to manage any Filament you have:

Print Job History Plugin:

Ressouce Monitor of Rapsberry Hardware (Release 4, with 2GB Memory) I have used to set up my octoprint “node”:



I’m running Octoprint on an rpi 3 with my Ender. 3 and like you, a 4 with 2gb on my A350. Web response is much faster.

But I’ll say I spend much more time in Astroprint than I do the Octoprint interface. The are at least two things it has which I love over Octoprint alone:

  • Cloud slicing with rich Cura engine features
  • STL and gcode file and job management


Hi Hal.

Sound very good as an alternative. I have seen that this cloud based solution should be free for a user when using only one 3D printer.

How have you connected the snapmaker with this cloud solution? Over Wifi or directly with you PC using the serial USB connection?


Afraid it requires some hardware to speak to the printer and the cloud service. I came across Octoprint first, so ended up with the plugin for it, but they have other options which range in cost and DIY preference.

If not clear, I’m running Octoprint on a raspberry pi. You can get the gear for ~$40-90. I like Sparkfun.com.

This is my profile in OctoPrint. I’m wondering about the different speed settings?! Honestly I do not remember, where I got the speed settings from…

I just wanted to add that Luban is actually already built with web based tech, it is simply wrapped in a basic Electron wrapper for packaging. You can open built-in Chrome dev tools available from the toolbar to inspect the HTML of the application at runtime and break it with the interactive JS console. I would assume any SnapMaker official interfaces would thusly, and unfortunately, be based on exercising Luban more versus anything new and novel that might actually be competitive to the listed options here. It certainly seems feasible to run Luban as a server hosted on the printer itself with some adjustments, making it self contained, but it would still probably be Luban :frowning:.

Note: The dev tools can be used to inspect the network traffic while talking to the printer for anyone looking to replicate Luban’s API usage.

1 Like

I want to concur with this. The folks that do heavy numerical work, such as is needed with CAD/CAM, tend not to work with javascript, and that’s a good decision regarding technical quality. At the very least, the libraries that would be required for this don’t exist in javascript, and it would economically foolish to rewrite them.

What Snapmaker ought to do is to license some competently-written software for its customers. I’m not holding my breath.

1 Like

Hi at all & @xh3dx , @Stanou

Any news to this? Is there anything planned to be implemented in an update?

I too would appreciate at least a “read only” web interface as this could be accessible via PC or Mobile alike by bookmarking.

More control of course would be even nicer and I admit OctoPrint is really pretty, but I would want to avoid another equipment.

I saw plenty about accessing the API but I don’t get yet how to use it… is there a more or less basic how to / guide somewhere ? (I defineatly haven’t checked all there is yet as I only recently acquired my Printer.)

Hi @pavel. I saw your post elsewhere that you work in broadcast engineering. The only API information available at the moment is the Luban API source code here: Luban/Server.js at 767fdd048eb1c141ce539dd2f12aeb076ab9582d · Snapmaker/Luban · GitHub

For instance, there’s {host}/api/v1/execute_code to execute gcode.

Actually writing an interface to take advantage of it directly without Luban has not happened as far as I’m aware. Maybe you could be the one :wink:

If you start Luban, you can click on View → View in Browser. This opens up a browser pointing to

Maybe its possible to open this on another computer: http://yourlubanhost:42043/#/3dp

That maybe could be the remote control…


I might be stretching out of context here … (if this belongs somewhere else, let me know)

It seems (based on what I’ve read so far) that Luban picks its Port at random for each User/Machine, for me it’s :

The Browser opens but after a very short loading symbol, I end up on a blank Page !?!?!?

I run Luban v3.13.1 on Windows.
On the Touchscreen I can find out that the Controller Version is
Apart from that, I could not find the actual firmware versions yet.

I feel a bit at a loss here … (It might be me …)

This is my Settings menu:

I am somewhat surprised about the slim menus …

Aehm… writing an interface is not in my plans … if at some point it annoys me too much I just might, but for now I still need to get settled with my new Toy ;).

I got a few Ideas in my head to tweak around here and there but nothing touching the internal organs.

If you / anyone can point me to what I’m missing here I’d appreciate it =).

Could this explain why sometimes the machine will not connect via usb? It says that it can not open the port? And sometimes it works?