Dragon Burner adapter for Snapmaker 2.0 QC
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
This adapter makes it possible to build a Dragon Burner toolhead for your Snapmaker 2.0 using the quick release plate
- Ocena
- 0 / 5
- Polubienia
- 6
- Pobrania
- 12
- Wydruki
- 0
- Wyświetlenia
- 372
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Other Printer Parts & Upgrades
- Licencja
- Creative Commons — Attribution — Noncommercial — Share Alike
Credits:
I only made the adapter for the Snapmaker 2.0 quick release kits, the Dragon Burner and Sherpa mini seen in the pictures and models are chirpys and Annex Engineerings designs respectively, big thanks for creating & sharing them!
https://github.com/chirpy2605/voron/tree/main/V0/Dragon_Burner
https://github.com/Annex-Engineering/Sherpa_Mini-Extruder
Disclaimer:
This project works with with modified firmware, be careful and do it at your own risk.
I tested it on my machine and it works great but I can't guarantee it will for everyone.
With that being said lets get started.
There are three different possibilities for this project:
- You use a hotend with an NTC3950 themistor just like the original 3D printing module, then no firmware modification is required
- You use a hotend with a different thermistor but you don't want to print hotter than 275°C then you only need to modify the firmware of the toolhead
- You use a hotend with a different thermistor than the stock module and want to print hotter than 275°C, then you will need modified firmware for both the controller and toolhead
Why would you want to make such a toolhead:
- better extruder performance
- better part cooling
- roughly half the weight of the stock single extruder
- flexibility to customize the toolhead to exactly what you want/need
- just for fun :)
The configuration I went for:
- Extruder: sherpa mini
- Hotend: E3D Revo voron
- Leds: Adafruit sequins
- ABL: Clicky probe for the dual extrusion module (https://www.printables.com/model/918381-klicky-abl-probe-for-snapmaker-dual-extrusion-modu)
If you take a look at the Dragon Burner git you can see what configurations are supported. (Make sure that you use a hotend with a thermistor that works with a 4.7k pull down circuit)
For configurations that differs from mine I would recommend to make an assembly in CAD before starting the build just to make sure. (Here is a great resource for models of all sorts of parts used in 3D printing: https://github.com/PrintersForAnts/Voron-Construct)
Make sure that the nozzle reaches as far down as the one in my aassembly does or else the latch of the quick release plate will touch the build plate before the nozzle does. (don't ask how I know…)
In addition to the components from the different parts you've already chosen you'll need to following parts to mount the dragon burner to the quick change plate. (Clicky parts are not included here!)
BOM:
- Printed adapter
- 1 Snapmaker PCBA (if it's not the version from the updated print module some connectors will change from the BOM here)
- 7x M3 / 3.02 / 6 /0.5 washers (optional but they might reduce creeping)
- 2x M3 x 5.7 Heat insert (CNC Kitchen)
- 2x M 3 x 35 screws (cowl front)
- 1x M3 x 20 screw (cowl from rear)
- 2x M3 x 16 screws (cowl rear bottom)
- 2x M3 x 5 (8) screws PCB
- some thin copper wire for the leds (I used 0.14mm^2)
- 2x JST XH 2 pin (hotend & part cooling fans)
- 1x JST PH 3pin male (ABL port)
- 1x JST PH 2pin male (if you implement a filament runout sensor)
- 1x Molex Mini-SPOX - 1x4 Male (hotend heater and thermistor)
- some small zip ties for cable management
- 3x leds e.g. adafruit sequins
Required tools:
- soldering iron
- wire stripper
- crimping tool
- multimeter (optional but recommended)
Printing:
The adapter/base is very simple to print.
Use standard voron spec and materials:
- Layer height: 0.2mm
- Extrusion width: 0.4mm, forced
- Infill percentage: 40%
- Infill type: grid, gyroid, honeycomb, triangle, or cubic
- Wall count: 4
- Solid top/bottom layers: 5
Also make sure that the bridging that supports the counter sunk screws is oriented correctly:

Installation:
Assemble the Dragon Burner completely with the documentation on the git.
Then you just need the 7 screws (and optionaly washers) to attach the PCBA and the toolhead to the plate.
I would recomment to do all the wiring first and then install the PCBA last.
Wiring:
Here is a schematic on how to connect all the different wires:

Be sure to check the markings on the PCBA to make sure the wires match the pins on the board.
For the hotend heater and thermistor the polarity does not matter but for the fans they do! (it might even be different than what the connectors of the fans have by default)
Since there is only one port for the part cooling fan and the Dragon Burners use two I just crimped both cables into one crimp connector which worked just fine.
Be aware that there is a discussion if the PCBA can handle bigger fans. I used the recommended GDS Time ones recommended by chirpy and have not yet had any issues. (see this link for more infos on the topic: https://forum.snapmaker.com/t/3dp-part-cooling-fan-5015-replacement-for-gen-1-extruder/10038)
For the motor cable try to check if you find a drawing which shows which pin is connected to which winding but as far as I know most of them should be correct by default.
For the wires connecting to the magnets for the clicky probe I bent half of the strand so it sits on the bottom of the pocket and left half on the side to ensure i always have electrical contact:

The magnets should then press-fit in nicely.
If you use the leds wire them all up in paralell an
d solder the wires as shown in the picture:

(Make sure that you dont make contact with the aluminium heat sink, also polarity matters here as well)
Once the toolhead is fully done you can check your wiring with the multimeter or alternatively hook it up to the machine to test if everything is working correctly. You can use the following commands to check individual components:
- leds should be always on since we soldered them to +3.3V and GND directly
- part cooling should turn on if you type in M106 S255 in the terminal in Luban. (M107 turns them of)
- For a 104NT thermistor the hotend temperature should look fairly correct even if you havent yet updated the firmware, but this is only at room temperature, the higher you go the more it will deviate so I dont recommend to go beyond 100°C
- the hotend fan should turn on when you set a temperature of more than 50°
- the extruder should rotate when you enter something like G91 followed by G1 E100 F50 (If the motor only vibrates you need to switch the middle two wires in the connector, if it spinns in the wrong direction you can either change it in the firmware or change the wires: https://electronics.stackexchange.com/questions/70643/how-to-reverse-rotation-direction-of-stepper-motor)
Firmware:
While this topic can seem overwhelming at first, but the marlin parts is actually somewhat simple. (Teaching tech has very good videos on modifying Marlin firmware, make sure to check them out.)
Snapmaker is a little special in this regard since it doesn't use vanilla Marlin but has firmware built on/around it. Unfortunately I didn't really find any information online on how to proceed when you want to do custom firmware so there was quite some trial & error but it is working pretty well now.
If you are an expert in Snapmaker firmware or just generally talented with software like this let me know if there are any tipps and tricks or if I missed anything, input would be greatly appreciated!
That being said you have to be careful and only adjust things where you are fully aware of the consequences, worst case you brick your machine.
Install VScode and PIO according the the instructions on the Snapmaker git.
For the main changes use this repo:
https://github.com/Snapmaker/Snapmaker2-Controller
For the firmware of the toolhead use this repo:
https://github.com/Snapmaker/Snapmaker2-Modules
This will be used to modify the firmware of the PCBA to allow 300°C and correctly read the temperature from the new thermistor.
Changes to the controller:
I marked all the changes with the comment OGSM2.0 to be able to easily find all the modification and added the value that was there before the change in the comment as well. This helps to keep track of everything.
Keep in mind these changes apply for all single extrusion modules, if you want to keep using the stock one it would be better to change all the geometrical settings with gcode.
The dual extrusion module will not be affected by these changes.
Marlin>Configuration.h (this is the file name and path where you need to make the changes)
There is no need to change any of the heater or thermistor data like you usually would because this is all handeled in the toolhead firmware.
#define INVERT_E0_DIR false //OGSM2.0 original value true
Only change this if your motor was spinning in the wrong direction.
If you don't want to alter the controller firmware you can also switch around the wiring of the stepper motor to reverse the direction like mentioned above.
#define X_PROBE_OFFSET_FROM_EXTRUDER 0 // OGSM2.0 Original value 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 18.03 // OGSM2.0 Original value 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER -9.4 // OGSM2.0 Original value 0 // Z offset: -below +above [the nozzle]This changes the offsets of the probe in relation to the nozzle to ensure the ABL works correctly. Alternatively you could use M851 to specify the probe offset, whichever suits you better
snapmaker>src>module>toolhead_3dp.cpp
// update max temp firstly, CAN callback will use it to judge max_temp error
UpdateHotendMaxTemp(300); //OGSM2.0 original value 275Changes to the toolhead:
These changes only affect the PCB of the toolhead you flash the firmware on.
Marlin>src>core>pid.h
#define SINGLE_EXTRUDER_MAX_TARGET_TEMPERATURE 310 // OGSM2.0 original value: 275
#define SINGLE_EXTRUDER_MIN_TARGET_TEMPERATURE 0
#define SINGLE_EXTRUDER_MAX_TEMPERATURE 310 // OGSM2.0 original value: 300
#define SINGLE_EXTRUDER_MIN_TEMPERATURE 0Here adjusted it so it matches the dual extruder since it is also a 300° hotend.
Marlin>src>core>thermistor_table.cpp
const int32_t temptable_ntc3950[][2] = {
/* OGSM2.0 original values:
{ OV( 4), 938 },
{ OV( 91), 300 },
{ OV( 118), 290 },
{ OV( 136), 272 },
{ OV( 169), 258 },
{ OV( 201), 247 },
{ OV( 236), 237 },
{ OV( 270), 229 },
{ OV( 309), 221 },
{ OV( 343), 215 },
{ OV( 380), 209 },
{ OV( 415), 204 },
{ OV( 454), 199 },
{ OV( 487), 195 },
{ OV( 533), 190 },
{ OV( 563), 187 },
{ OV( 605), 183 },
{ OV( 651), 179 },
{ OV( 687), 176 },
{ OV( 766), 170 },
{ OV( 839), 165 },
{ OV( 918), 160 },
{ OV(1005), 155 },
{ OV(1098), 150 },
{ OV(1220), 144 },
{ OV(1330), 139 },
{ OV(1472), 133 },
{ OV(1811), 128 },
{ OV(1729), 123 },
{ OV(1895), 117 },
{ OV(2068), 111 },
{ OV(2245), 105 },
{ OV(2394), 100 },
{ OV(2542), 95 },
{ OV(2689), 90 },
{ OV(2832), 85 },
{ OV(2996), 79 },
{ OV(3175), 72 },
{ OV(3246), 69 },
{ OV(3337), 65 },
{ OV(3500), 57 },
{ OV(3537), 55 },
{ OV(3605), 51 },
{ OV(3697), 45 },
{ OV(3775), 39 },
{ OV(3888), 28 },
{ OV(3927), 23 },
{ OV(3966), 17 },
{ OV(4005), 9 },
{ OV(4038), 0 },
{ OV(4062), -10 },
{ OV(4083), -27 },
{ OV(4085), -30 }
*/
{ OV( 45), 350 },
{ OV( 52), 325 },
{ OV( 71), 300 },
{ OV( 81), 290 },
{ OV( 106), 272 },
{ OV( 131), 258 },
{ OV( 156), 247 },
{ OV( 184), 237 },
{ OV( 211), 229 },
{ OV( 243), 221 },
{ OV( 270), 215 },
{ OV( 300), 209 },
{ OV( 329), 204 },
{ OV( 361), 199 },
{ OV( 389), 195 },
{ OV( 427), 190 },
{ OV( 452), 187 },
{ OV( 488), 183 },
{ OV( 527), 179 },
{ OV( 558), 176 },
{ OV( 627), 170 },
{ OV( 691), 165 },
{ OV( 762), 160 },
{ OV( 840), 155 },
{ OV( 925), 150 },
{ OV(1038), 144 },
{ OV(1142), 139 },
{ OV(1278), 133 },
{ OV(1401), 128 },
{ OV(1532), 123 },
{ OV(1699), 117 },
{ OV(1877), 111 },
{ OV(2062), 105 },
{ OV(2221), 100 },
{ OV(2381), 95 },
{ OV(2542), 90 },
{ OV(2700), 85 },
{ OV(2883), 79 },
{ OV(3084), 72 },
{ OV(3166), 69 },
{ OV(3268), 65 },
{ OV(3453), 57 },
{ OV(3494), 55 },
{ OV(3572), 51 },
{ OV(3675), 45 },
{ OV(3762), 39 },
{ OV(3885), 28 },
{ OV(3927), 23 },
{ OV(3968), 17 },
{ OV(4009), 9 },
{ OV(4041), 0 },
{ OV(4064), -10 },
{ OV(4084), -27 },
{ OV(4086), -30 }
};If your hotend uses an NTC3950 you don't need to apply this change.
I tried to do this properly with adding new constants etc. but i never managed to get it to work properly so I ended up just changing the ADC table.
The values above only work with the 104NT thermistors found in the Revo among others, if you use a different thermistor you need to calculate your own ADC table.
Creating a new ADC table:
This table here is not a resistance to temperature table like they are used in Marlin.
It converts the ADC raw value to a temperature with the thermister having a 4.7kOhm pull down resistor. (I calculated this from the given NTC3950 table, if you are well versed with PCBs and can verify this methodthis would be welcome. I can't measure the effective temperature at the hotend but all the temperature towers from PLA to ASA behave exactly like they are supposed to)
You can calculate your ADC value for a given temperature with the following formula:
ADC = (R_thermistor / ( R_thermistor + R_pull_down)) * 4095 (R_pull_down being the 4.7kOhm)
To make sure you have sufficient resolution you can take the temperature steps for a given thermistor from the thermistor tables in marlin and then instead of the resistance you use the calculated ADV value.
Calibration & setup:
All changes made here need to be saved to the EEPROM with M500 at the end (otherwise they will be lost if you power of the machine).
E-Steps:
Calibrate the new E-Steps following this tutorial:
https://teachingtechyt.github.io/calibration.html#esteps
Home offsets:
Since the nozzle position has changed a bit you can “reposition” the bed in relation the the endstops with M206 Home offsets
I only had to change the x value to M206 X-25
Hotend PID:
Unfortunately Snapmaker doesn't support the M303 PID autotune from marlin since the temperature control happens on the PCBA itself instead of the main controller.
However you can manually tune it using M301.
I landed at the following values and it works fairly well from 190° full fan speed to 270° medium fan speed:
M301 P15.00 I0.065 D105
New build volume:
Since this toolhead is designed to maximize the achievable build volume with the quick swap kit you can update the build volume in your slicer profile.
Here are my values: X332, Y345, Z315
Before you can start printing you need to do reset your quick change and bracing kit status, bed mesh and Z-offset.
Keep in mind to ALWAYS attach the clicky probe for leveling and remove it for printing to avoid damages to the print head or print sheet.
Now that you're all done, let me know how it went and enjoy printing with your new toolhead :)
Edit:
If you are building a toolhead with the sherpa mini you can sue the following mod to add a filament runout sensor:
https://www.printables.com/model/943370-sherpa-mini-filament-sensor
You can either use your existing microswitch or buy the limit switch and filament runout sensor kit from Snapmaker.
You will need to bend the little steel lever straight in order for it to work properly, the cabling should already be correct.