.2, honeycomb, rectilinear
What about the base and the dimensions?
Printable View
.2, honeycomb, rectilinear
What about the base and the dimensions?
As sniffle said, really not all that bad of a first completed print. And as rhonal89 said, slic3r sort of has a reputation for being light on the top layer - it's often easy to spot Slic3r prints because of that. Is Colin still providing Slic3r v0.9.9? (dumbfounded) You do have the option to increase the top layer extrusion... I think I was up to 300% before I moved away from Slic3r. I've heard the very latest experimental rev on Slic3r has finally made some flow rate adjustments.
Have you calibrated the extruder yet? Don't scrutinize the bottom layer, the top layer, or really much of anything until you do.
The temperature of the build plate can make a big difference in how the first layer smooths out. You've told us you're printing in ABS - what nozzle and bed temperatures? They can vary from printer to printer and filament to filament, but we can at least confirm whether you're in the right ballpark.
Finally, this may not help with your USB woes, but it's probably safe to say that the USB interface on most of these printers is "delicate". It's especially easy to get things messed up if you're trying to do multiple things with different software talking to the printer. My pitfall is typically trying to upload firmware from the Arduino IDE while I still have host software connected to the printer. A fully robust recovery procedure typically entails closing the Arduino IDE, disconnecting the host software, closing the host software, unplugging the USB cable, sometimes turning off the printer and then back on, reconnecting the USB cable, and then restarting the software I was trying to use. In a few rare cases, I've had to log out/in or restart the laptop I use. Again, this may not be helpful to you but sharing lessons learned.
That was what I came here to comment on. I think I need to get the extruder calibrated first. So far I have been only using what Colin has supplied and recommended.
I am using 250 for the abs temp
110 for the bed
.4mm hexagon hotend
Yes, I am using Slic3r v0.9.9 as that is what he supplied configs for and supports. I have no idea how to setup another slicer. I'd love to get prints even remotely close to the parts he supplies with the kit. All the advise I get from him, and he has been wonderfully supportive, it to make sure I am using the config he supplies.
So, I will take a look and see if I can fine tune the extruder. Is that a firmware adjustment or a multiplier adjustment? I have honestly read so much on this I am confused which I am supposed to do. One I read says to make the change to the multiplier and create a new config. Another says to activate the eprom in the LCD and make the change there. Another says to adjust the config files.
So, what is the best procedure?
Colin is great, but you'll learn that some of his advice is, well, lacking at times. For example, the statement that you shouldn't do a auto home from the LCD is bunk. If you look at the Marlin software, all the LCD interface does is inject the very same G28 instruction into the command processor that would apply if the home was commanded by USB. There is no reason for the LCD commanded home to be any different.
I personally don't do much with ABS so I'll leave this for others to confirm. Seems reasonable.Quote:
I am using 250 for the abs temp, 110 for the bed, .4mm hexagon hotend
Well, then stick with v0.9.9 for now until you're comfortable trying something else. Some people likely stick with it forever but the advice that you can't use anything else is misguided. I will assure you - you will likely get to the point where you reprint the extruder parts just because your parts look better than those that came from MakerFarm.Quote:
Yes, I am using Slic3r v0.9.9 as that is what he supplied configs for and supports. I have no idea how to setup another slicer. I'd love to get prints even remotely close to the parts he supplies with the kit. All the advise I get from him, and he has been wonderfully supportive, it to make sure I am using the config he supplies.
"Best" is arguable. Probably a good place to start if you haven't seen it is the sticky on it - http://3dprintboard.com/showthread.p...nd-Proportions. The different approaches each have their advantages/disadvantages. Modifying the configuration.h file gets it burned into the firmware so you can't forget to change it manually, but you might have to modify firmware to revise it. You can just tweak it at run time from the LCD without the EEPROM save, but you have to remember to do it after every time the printer is reset. Doing it from the LCD along with saving it in EEPROM is a way to make the change stick in the printer without having to hassle with a firmware upload.Quote:
So, I will take a look and see if I can fine tune the extruder. Is that a firmware adjustment or a multiplier adjustment? I have honestly read so much on this I am confused which I am supposed to do. One I read says to make the change to the multiplier and create a new config. Another says to activate the eprom in the LCD and make the change there. Another says to adjust the config files. So, what is the best procedure?
Hang in there. There's a lot to absorb. Take things a step at a time. The frustrations, confusion, and what not you are experiencing are not all that unusual.
feed test calibration and then implement that value in the config.h file, i'll then manually tune the extrusion multiplier if i need to.
As to the slicer software i would suggest staying with 0.9.9 until you are more comfirtable, then upgrade to other slicers like cura or the experimental versions of slicer, there is also simplify3d, kisslicer, repetier host... they all just generate a gcode file that you tell the printer to print but they all go about generating that code a different way, some are better than others at printing certain types of things certain ways... that being said most fothem are just programs you download and install. Once you get used to settings they are all easy to use and setup.
we'll get you there promise :-)
my printer was delivered i think mid december, i just stuck with it and figured things out, and now i'm happy with my prints, but want to make them better :-)
So I can get in and change it on the EEPROM and save it there without messing with the arduino side of things? basically the same thing correct?
My understanding is if you are using a different roll a lot you can setup a different config file with a extrusion multiplier and this can accomplish the same thing a EEPROM save can, just different for different rolls of filament.
Yes - that is correct. On the LCD, setting CONTROL | MOTION | | Esteps/mm is exactly the same thing as changing the fourth constant in configuration.h DEFAULT_AXIS_STEPS_PER_UNIT. I ran my printer this way for several months, staying away from the Arduino side on purpose. You can keep doing that - you just have to remember that every time the printer logic is reset, it reverts back to what ever parameter it has been hardcoded to. The in-between approach is that you allow EEPROM updates to be possible from the LCD. Takes a firmware update to do that. But then once you have parameters set via the LCD the way you want them, you can store the parameters in to a non-volatile memory space on the MEGA2560 board. After every reset, Marlin will then use those parameters instead of the hardcoded firmware ones.
From the slicer perspective, yes. What we're managing here is the volume of filament flowing onto the bed. There are multiple configuration parameters that feed into that. In theory, you can adjust them all. First there's the "steps per unit". This defines the rate that the extruder stepper motor needs to rotate in order to push 1mm of filament into the hot end. The planning math in Marlin calculates what length of filament it needs in order to obtain the extrusion output it wants. There's essentially a gear ratio factor involved in this - the DEFAULT_AXIS_STEPS_PER_UNIT in configuration.h or the CONTROL | MOTION | steps/mm factors on the LCD. If the gear ratio is wrong, more or less filament will be pushed than is expected. As mentioned earlier, the MakerFarm firmware defaults seem to always be low for everyone who has reported calibration results here, with a symptom that the output extrusion will be on the light side. This is because the filament isn't actually being pushed into the hot end at the linear rate that the Marlin firmware is assuming.Quote:
My understanding is if you are using a different roll a lot you can setup a different config file with a extrusion multiplier and this can accomplish the same thing a EEPROM save can, just different for different rolls of filament.
Then in the slicer, there's the filament diameter. Even though the linear rate of movement might have been corrected per the above, the amount of filament volume going into the hot end will vary if the filament diameter varies. If the slicer is configured for 1.75mm diameter filament and you're actually using 1.68mm diameter filament, the slicer will actually be commanding less filament volume to be pushed into the hot end than it should, with again, light extrusion being a symptom. Again, this is in the slicer. Marlin firmware doesn't know or care what size filament you're using.
Then there's the extrusion multiplier. That basically tells the slicer that OK, regardless of any corrections made to the rate we're commanding the stepper motor to feed the filament and the diameter of the filament, apply yet another correction to how much filament is actually being extruded.
Filament diameter and extrusion multiplier can be saved on a filament roll by filament roll basis, and many people do that.
There are even more ways to modify the rate that filament is being extruded at print time, but I'm not going to go into them at this point since they'd likely add to your confusion.
As a bottom line, all of these parameters can and will affect the volume rate that filament is extruded. Each just does it in a different way. I'll stick my neck out and say there's no right or wrong way here - you pick how you want to do it and stick with it. I found that my steps per unit varies little, so I freeze that as part of firmware, rechecking the value every blue moon or so. I configure the slicer for the filament diameter every time I change the filament. I typically leave the extrusion multiplier at 1.0, likely mainly since I've never taken my calibration far enough to care about that additional detail - my prints seem good enough after setting the other two parameters. In the odd cases where I'm in the middle of a print and I wish I was extruding a bit more or less, well, that can be tweaked from the LCD.
I set my esteps to 888.7 as that seemed fairly average between all my rolls of filament, i usually set diameter and might tweak the multiplier a little if small parts tend to be a little thick or thin.
Okay, I think I got it. So I measure the filament and figure out if I need to adjust the steps/mm up or down,
I my case, they needed to go up. I commanded it to push 100mm through and only got 97. 21. I upped up using the math in the video and got it very close. I adjusted those settings in the EEPROM. Now, those setting will remain changed every time I turn on the unit. Should I reset the firmware it will revery to the settings Colin provided. I should most likely save a modified version of the firmware.
I think I have the extrusion calibrated, should I also do the same for the X,y, and Z? The cube I printed earlier was large. I am guessing that the extrusion calibration would help that.
I have some parts I want to print for my tricopter but the one I printed yesterday is too tight and not even close to fitting. That's why i want to get this thing tuned, I am itching to fly!
I think an ABS setup is in my future. Does that replace the Z endstop or are both used?
It replaces it. To help with tolerances you should look for and use an option in slic3r that says something about printing outside perimeters first.
Oops, meant ABL.
So while I learn about all this. The question I have about other slicers is, do I need to enter all the steps/mm and other movement data or does the firmware handle all that. The slicer just says move so many mm and the firmware handles the conversion?
foe example, I watched a video on Kisslicer and the prints looks great. Wanted to give that a try. Then there's cura too.
Your correction really wasn't that significant. I'm almost surprised. When you get to the point you upload firmware with EEPROM settings enabled, there's an additional detail to be aware of. EEPROM settings take priority over firmware settings. So, if you have tweaked settings and saved them in EEPROM, those will continue to be used even after the new firmware build is uploaded to the printer. There's an additional couple of steps to force updating of the EEPROM contents after a firmware build; than can be addressed another day.
You could, and some people do. But those factors are basically driven by the mechanical design and shouldn't require adjusting. The extruder one can since there are variables in how the hobbed bolt is actually grabbing the filament.Quote:
I think I have the extrusion calibrated, should I also do the same for the X,y, and Z? The cube I printed earlier was large. I am guessing that the extrusion calibration would help that.
I'm not trying to burst your bubble, but this almost always a problem with FDM printing. In addition to perhaps the printer mechanics being off, not all designs properly factor for extrusion width, and some slicers can be better than others with dimensioning results. As sniffle suggested, printing the outer perimeter first sort of lets that perimeter take charge in holding back the inner ones. If you print the outer perimeter last, it gets pushed up against the perimeter already there and has no where to go but outwards.Quote:
I have some parts I want to print for my tricopter but the one I printed yesterday is too tight and not even close to fitting. That's why i want to get this thing tuned, I am itching to fly!
Yes, that's pretty much it. The gcode commands tell the printer to move an axis some distance, and the rate at which it should move. In that regard, the extruder is just considered another axis. The printer takes care of all the details on how to accomplish those moves.
Slic3r has about a million updates out there beyond the v0.9.9 version you're using, so that is also an option. Just about any slicer can eventually give you credible prints as you figure them out.Quote:
foe example, I watched a video on Kisslicer and the prints looks great. Wanted to give that a try. Then there's cura too.
You can also usually scale objects in the slicer - that may be an option to getting parts to fit.
Thinking some more, I would not adjust the XYZ mechanics based on the single results you have. Print something larger for another comparison. For example, here's a large square - http://www.thingiverse.com/thing:38096. That may not be a perfect model (I can't speak to the dimensional accuracy). If both the small cube and the larger print are off by the same PERCENTAGE, yes adjusting the mechanics may be an option. If they're both off by about the same AMOUNT, no, don't change the axis steps per mm. If you do in that case, the prints will be off for anything sized smaller/larger than your calibration print.
Thanks. So I guess I am confused on the eeprom thing. Are there two places where the settings are stored? I thought a firmware update would wipe the memory and sort of reset it.
What is the procedure for restoring the firmware to a "Colin" state?
Is that the load failsafe and restore memory functions?
eeprom is a major headache and a lot of us disable it especially because with ABL you will find that if you update your settings for offsets etc, and if old offsets are saved to eeprom the eeprom will override your new settigns and just make life difficult, not to mention it can be confusing...
basically if you plan to run and tune your printer from the display eeprom is great because you can save settings to the eeprom and they will always come back... but if you are using firmware uploads to modify things and not using the display it gets in the way.
So far I haven't changed the firmware and have only done things (for calibration) to the EEPROM. My fear after reading your comments is that when I add an ABL I will be starting all over again.
How can I migrate the changes I have made in the ERPROM to the firmware? That is to say, I know how to make changes to the firmware but how do I Erase the changes from the EEPROM?
when you disable eeprom in the firmware it wont read and overwrite the firmware settings
Thanks. Just wanting to stay on top of things. I was going to change the steps/mm in the firmware and I thought I new where is was, but I couldn't find it or I missed it. Are they defined in the config.h file?
yes it is in the configuration.h file... gimme a sec to look it up and give you something to search with
edit:
here it is #defineDEFAULT_AXIS_STEPS_PER_UNIT that is where the units are placed, the brackets after it are in the format of {X,Y,Z,E} with E being your extruder steps
Everything sniffle has said is correct. I'll elaborate on your original question. Unfortunately, another lengthy answer is required to fully explain how the printers use memory.
The ATMEGA2560 processor used in the MakerFarm printers contains three types of memory. We'll describe them as flash, Electrically Erasable Programmable Read Only Memory (EEPROM), and Random Access Memory (RAM).
When a printer is up and running, it is executing the firmware code stored in the flash memory, using the RAM as workspace for various parameters, calculation results, and other variables. Contents of the flash memory will stay the way it is until the flash memory is damaged or new firmware has been uploaded to it. Along with the executable firmware code, the flash memory also contains what is described as "factory defaults" for settings and parameters. Don't be confused by the label factory - it doesn't imply MakerFarm as the factory. Factory simply refers to the firmware build that was last uploaded to the printer. Being able to change settings and parameters in a firmware upload is one method of changing them.
The Marlin firmware starts off by initializing the variable RAM space. If EEPROM is disabled, it will fetch the factory default values from the firmware upload stored in flash memory. If EEPROM is enabled, the data saved by the printer user to EEPROM will be used instead. Regardless of the source, this iniitialization only occurs once as the firmware starts up. After that, the contents of the settings and parameters in the RAM space will continue to be used until the ATMEGA2560 is reset or otherwise restarted. During the time the printer is up and running, many settings and parameters can be changed through either the LCD smartpanel or through gcode commands sent to the printer through host software. When changed from either the LCD or gcode, the updated values will again continue to be used until the ATMEGA2560 is reset. Updating RAM with settings and parameters from the LCD or gcode a second method of changing them.
Processors like the ATMEGA2560 are developed as general purpose processors - they aren't tailor designed for the 3D printer market. EEPROM space is available in the generic processor design for products that have a need to store some number of user-settable parameters in a non-volatile way without the risk and hassle of revising the flash memory contents. For example, in a clock design EEPROM might be used to store the daylight savings time mode, preventing the need for the user to re-enter the desired state every time the clock is restarted. Applying the generic processor design to our 3D printers, Marlin provides the option to store the settings and parameters in the EEPROM space as well. On command from either the LCD or receipt of the M500 gcode instruction, Marlin firmware will take the current state of key settings and parameters in the variable RAM space and copy them into the EEPROM. With Arduino, this is the only way to update the EEPROM contents. Storing settings and parameters and settings in EEPROM is a third method of managing them.
Again, when EEPROM is enabled, the settings and parameters stored there will be used by the printer instead of the "factory defaults" loaded with the firmware build in flash memory. On command, however, again from the LCD or here on receipt of the M502 gcode instruction, the RAM workspace will be loaded with the factory default settings and parameters. As described earlier, these values will then be used until changed from the LCD or gcode, or the printer is reset/restarted. The printer will again fetch the settings and parameters from EEPROM during the reset/restart.
To "erase" the effect of the EEPROM settings, you can disable EEPROM. Marlin will no longer look to EEPROM for settings when it is disabled. The other option available is to send the printer an M502 gcode command followed by an M500 command. The M502 copies the factory default settings from flash to RAM, and M500 in turn copies them from RAM to EEPROM. Similar manipulation is also possible through the LCD.
Thanks for the info. I will digest that.
In the meantime, I just ran a print and figured I would do some measurements. From pronterface, I homed the machine, ran a m18 code and checked that the bed was level and ran a print. I paused the print as the skirt was printing and measured the height of the nozzle. It is at .53mm. Here is the Gcode.
; generated by Slic3r 0.9.9 on 2015-02-08 at 11:44:36
; layer_height = 0.2
; perimeters = 3
; top_solid_layers = 3
; bottom_solid_layers = 3
; fill_density = 0.4
; perimeter_speed = 75
; infill_speed = 100
; travel_speed = 100
; nozzle_diameter = 0.4
; filament_diameter = 3
; extrusion_multiplier = .93
; perimeters extrusion width = 0.67mm
; infill extrusion width = 0.67mm
; solid infill extrusion width = 0.67mm
; top infill extrusion width = 0.67mm
; support material extrusion width = 0.67mm
; first layer extrusion width = 0.70mm
G21 ; set units to millimeters
M190 S110 ; wait for bed temperature to be reached
M104 S250 ; set temperature
; 12" i3v 3mm ABS for .40 Hexagon 4-5-14
G1 Z5 F50 ; lift nozzle
G28 ; home all axis
M109 S250 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
M106 S89
G1 F1800.000 E-1.00000
G92 E0
G1 Z0.350 F6000.000
G1 X134.600 Y134.330
G1 F1800.000 E1.00000
G1 X135.140 Y133.830 F1350.000 E1.02154
G1 X136.010 Y133.140 E1.05404
G1 X136.940 Y132.520 E1.08676
G1 X137.920 Y131.990 E1.11937
G1 X138.590 Y131.680 E1.14097
G1 X139.280 Y131.410 E1.16266
G1 X139.640 Y131.290 E1.17377
G1 X139.990 Y131.180 E1.18451
G1 X140.710 Y131.000 E1.20623
G1 X141.430 Y130.850 E1.22776
G1 X142.170 Y130.740 E1.24965
G1 X143.280 Y130.660 E1.28223
G1 X156.710 Y130.660 E1.67532
G1 X157.820 Y130.740 E1.70789
G1 X158.920 Y130.920 E1.74052
G1 X160.000 Y131.180 E1.77303
G1 X160.710 Y131.410 E1.79487
G1 X161.400 Y131.680 E1.81656
G1 X162.070 Y131.990 E1.83817
G1 X163.050 Y132.520 E1.87078
Okay, I got that, Maybe my brain isn't as mushy as I thought! So if I want to return the EEPROM to a "firmware" state I need to send a M502 gcode command followed by an M500 command? This will write what ever was in the firmware to the EEPROM.
Do you see anything funky in the code that would attribute my printing to be too high from the bed? As I stated, I homed and then moved the nozzle by hand to make sure that everything was a paper height from the bed. This was at temp too. When I ran the code it was too high.
Secondly, I got the following error when I ran the print...
Print started at: 12:10:52
[ERROR] Failed to set power settings:
Traceback (most recent call last):
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.pronsole", line 1173, in startcb
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power", line 130, in powerset_print_start
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power.osx", line 72, in inhibit_sleep_osx
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power.osx", line 49, in AssertionCreateWithName
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power.osx", line 40, in StringToCFString
AttributeError: 'module' object has no attribute 'kCFStringEncodingASCII'
[ERROR] Failed to set power settings:
Traceback (most recent call last):
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.pronsole", line 1180, in endcb
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power", line 134, in powerset_print_stop
File "/Users/craigvanvliet/Desktop/PyInstaller-2.1/pronterface/build/pronterface/out00-PYZ.pyz/printrun.power.osx", line 79, in deinhibit_sleep_osx
AttributeError: 'function' object has no attribute 'assertion_id'
My print started at .53mm.
I think I'm going to bow out and see if someone else can help at this point. I haven't had issues with this. The 0.53mm doesn't seem that far off, since you've got the endstop set for paper or about 0.1mm from the bed, and the slicer is configured for the first layer to print 0.35mm above that, or 0.45mm.
I know there's been discussion on whether or not the slicer first layer height should be set to equal the paper thickness, and some probably do. I never did. I never had a problem with how the first layer turned out in prints sliced in Slic3r or Cura with that 0.35mm layer height setting. I was either lucky or had fudged my way around any problem by adjusting the first layer extrusion width. I don't remember.
So, I played with Cura a bit as I just wanna try out what options there are. I seemed almost too easy to get it setup. I thought there would be more to it. I generated some gcode and it looks similar to the slicer but not the same, obviously. I am wondering, could running this code be potentially harmful? That is to say, would it ask the printed to move in opposite directions?
no, it will print just fine
Tried Cura, liked it. I started a thread on that as I have some questions on the support it generates but overall I liked the print better than the maker generated code.
I have another problem though. My printer is down for the count. I am really struggling with the inconsistent first layer quality and was inspecting the micro endstop when I noticed a bunch of ABS build up on the top of the hotend. I tried to take the fan off and it was not coming off! It has melted to the hotend and there is a bunch of ABS material up there. How could that have gotten up there?
Either I have a leak from the start or something else is happening. My theory is that in some of my prints the nozzle is touching the glass forcing the material to be squeezed out the top. Does this make sense and could it happen?
Well, I broke my thermistor so I have to get a new one. Man, it's weird, but I am happily frustrated with the process. Yeah, i am having troubles but I am enjoying it. Thanks again for all your help guys (Gals, don't really know!)
http://3dprintboard.com/attachment.p...tid=4853&stc=1http://3dprintboard.com/attachment.p...tid=4854&stc=1
I can't tell you about your melting problem. But usually first bad layer means for me that the bed is not level correctly to the hotend. Also I see your hotend. Is that the cap that came with the hotend in the packing box If it is. I don't think that's was suppose to be install in the first place. Maybe that's what cause your fan mount to melt.
This. ^
Upgrade the clough42's improved hexagon cooling system as soon as you can but in the mean time, you should be able to use your existing burned shroud. I would suggest cutting the charred plastic back along this red line and reinstalling.
http://3dprintboard.com/attachment.p...tid=4855&stc=1
Parts ordered this morning. Going to install the ABL too. I just can't wrap my head around the z endstop madness I am having. Everytime I home the printer I get a different result! If I hit home, it will place the nozzle below the glass. I hit home again and it back up and stops. it never goes back down. I hit it again, different position! My understanding is the endstop sets the nozzle height. Is this not the case? Can you guys describe what your machines do when you hot the home button. This is in pronterface and via the LCD.
My thought this the switch is either faulty or just is very inaccurate. Is there something I can write into the Gcode manually to set my bed height manually and not let the machine handle it?
For example, after manually setting the Z height and leveling the bed move the x and y axis to home manually and run this code at the beginning of the print...
G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;start with the fan off
G92 Z0 ;Sets Z position as home position
G28 X0 Y0 ;move X/Y to min endstops
G28 Z0 ;move Z to min endstops
G1 Z15.0 F{travel_speed} ;move the platform down 15mm
G92 E0 ;zero the extruded length
G1 F200 E3 ;extrude 3mm of feed stock
G92 E0 ;zero the extruded length again
G1 F{travel_speed}
;Put printing message on LCD screen
M117 Printing...
So what is the purpose of the hotend boot. I don't have it on mine. Should I install it.
You have a hot end leak. You need to rip apart clean it all out. and re tighten the part to the heater block while it is all hot. I have gone through this and a few others on this forum. It is not uncommon. In my build thread its mentioned. The how to put the hot end together video covers it for the most part just do it while it at printing temp.
not my video. It just shows the part where you tighten up the heater block to the cold zone. https://www.youtube.com/watch?v=stlrjY39l60