Power requirements

I was wondering if anyone know the maximum power requirements for the Snapmaker in watts. I know the power supply provided can put out a max of 120W (24v @ 5A), but is this a significant overshoot of what the unit requires?

TL;DR: Does the 24V-5A PSU with the SNapmaker provide enough excess power to run a Raspberry Pi (12W) and perhaps a 10W LED lamp?

@DaveDischord I know it has enough power to run a Raspberry Pi. I connect mine straight to the USB port where the memory stick was.

An additional 20W load on the power supply would be, in my opinion, a bit of a stretch for it and could cause overheating and/or power stability issues.

I have put an extension lead on mine - so I have three different things plugged in (the printer, the Pi, and a USB fan).

I just hooked my SnapMaker up to a remote control power plug that also reports power usage. These are the results I recorded:

7w - Idle running, controller & fan
19w - Doing a calibration
50w -> 20w - Doing a filament change. i.e. heating up the extruder to 210. After getting to temperature it takes 20w to maintain.
123w -> 96w -> 70w: Start up, heating both bed and extruder to 210 & 60, 96w after nozzle reaches 210, 70w after bed reaches 60.
83w, 71w, 75w, 74w, 61w… changes as the print progressed.

So it looks like if you have it heating up both bed and nozzle and were to be moving one or more axes that you could be pushing the 125w power supply.


Thanks for posting your findings. This is interesting. It explains why the bed gets heated first followed by the hotend. Is this standard practice for most print jobs, regardless of method ie memory stick, connected to PC, via Octoprint?

I haven’t seen the bed get heated first when using Snapmaker3D. The bed and hotend heat at the same time.

I don’t know if it’s “Standard Practice”. The GCODE scripts for startup and end are there for the user to customize. Maybe some printers don’t have the power supply to support heating up both at the same time. I set my SnapMaker to heat up both for speed considerations. The bed takes longer because it has a bigger thermal mass to heat up so I get it going first thing with a M140, then do the calibrations, then get the extruder heating up with a wait, then wait for the bed which is just about there by that time.

I like your method of preheating the bed, then calibration. Might as well with the timing. Where can I access the start/end gCodes to take a look at and maybe edit? I have found the Machine settings provided for Cura, which doesn’t include any preheating in the start code. There is also a parameter in OctoPi for some pre-start gCode.

Edit: Did some research, using these forums and the Cura forums. In case anyone is interested, these are my start/end gCodes in Cura under Machine Settings. I didn’t include any ‘mid-heat-up’ calibration code, but might look into something in the future.


M104 S{material_print_temperature} ;Start heating extruder
M140 S{material_bed_temperature} ;Start heating bed
M109 S{material_print_temperature} ;Wait for extruder to reach temp before proceeding
M190 S{material_bed_temperature} ;Wait for bed to reach temp before proceeding
G28 ;Home
G1 Z15.0 F6000 ;Move the platform down 15mm
G0 X-4 Y-1 Z0
G92 E0
G1 F200 E20
G92 E0


M104 S0 ;extruder heater off
M140 S0 ;heated bed heater off (if you have it)
G90 ;absolute positioning
G92 E0 ;set extruder to zero
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G92 Z0 ;set Z to zero
G1 Z10 F{speed_travel} ;move Z 10mm from top of print
G1 X0 F3000 ;move X to min endstops, so the head is out of the way
G1 Y125 F3000 ;so the head is out of the way and Plate is moved forward

Put your G28 right after the M104 and you save a little time. Since on the SnapMaker the bed takes longer than the nozzle there’s no need to get the nozzle started before the G28.

With the official Snapmaker FFF profile in Simplify3D, the bed heats up completely before the nozzle even starts heating. I prefer that approach because it reduces ooze, especially with PETG, and it doesn’t cook the filament unnecessarily.

The nozzle finishes heating up last in my config. That is mainly what matters.

This might be a bit of over-optimizing, but in Cura and/or any other program with dynamic modifiers, can you heat up the extruder to a percent of the final temp? Example:
M104 S{material_print_temperature * .75} ;Start heating extruder to 75%

I don’t know if that’s possible or what the proper syntax would be.

I believe the particular slicer does the substitution. Are you asking if the SnapMaker software does the same thing? Or are you asking if you can do math within the parentheses?

I’m guessing its per slicer program that generates gCode, and within the brackets, so if {material_print_temperature} populates a value of 200 within the gCode, because it’s what you set as the temperature, I’m wanting to set 200, but initially, the temperature preheats to a given percentage in that line. Reason being, as mentioned, preheating the nozzle too early could cause oozing, so, if you could set it up to preheat just shy of melting, then ramp up to the target temperature after the bed preheats, you could save a little time without the drawbacks. I know its really insignificant in the long run, so it’s more of a curiosity.