Top 10 useful G-Code commands for 3D Printing

Поділитися
Вставка
  • Опубліковано 2 чер 2024
  • A big thanks to Micro Center for sponsoring this video!
    New Customer Exclusive - Get the Creality Ender 3 Pro 3D Printer for $99: micro.center/pd3
    Check out Micro Center’s Inland Filament: micro.center/8ti
    Shop Micro Center’s Monitor Madness Deals: micro.center/gsf
    Visit Micro Center’s Community Page: micro.center/06f566
    The Ultimate Book of 3D Printing Tips and Tricks (FDM/FFF) - www.makersmuse.com/3dprinting...
    Join the Maker's Muse Community - www.makersmuse.com/maker-s-mu...
    3D Printing Quick Start Guide - www.makersmuse.com/fdm-fff-3d...
    3D Printer Buyers Guide - www.makersmuse.com/purchasing...
    3D Printing Essentials - www.amazon.com/shop/makersmuse
    TIMESTAMPS:
    0:00 Intro
    0:46 What is G-code?
    2:51 How to send G-code to your 3D Printer (over USB serial) using Repetier-Host
    5:02 G28 Home Axes
    5:56 G1 Linear Move
    8:30 M302 Enable / disable cold extrusion prevention
    9:45 G92 and M83 (Absolute vs Relative movement commands)
    10:42 M92 Set axis steps per unit (usually MM)
    11:23 Firmware EEPROM Config in Repetier-Host
    11:50 Heating G-code commands
    13:18 M303 PID Autotune
    15:04 M300 Beep
    15:57 M117 Set LCD Message
  • Наука та технологія

КОМЕНТАРІ • 307

  • @balls2bone
    @balls2bone Рік тому +124

    "The number one ocomplaint I hear is that you guys don't have a Micro Center near you"... Well, a new Indianapolis store is still the wrong continent, lol!

    • @Julia________
      @Julia________ Рік тому +7

      I'm in the right continent, but they don't sell to Canada :(

    • @balls2bone
      @balls2bone Рік тому +5

      @@Julia________ I feel your pain. Since Brexit, it's easier to order things from China than bother with the EU. Shame really, so many EU companies went "do not ship to Britain" after Brexit. Has improved some, a lot of companies started shipping again, like Prusa!

    • @ilajoie3
      @ilajoie3 Рік тому +5

      My only complaint is that I don't have flocks of cockatoos flying through the skies where I live

    • @problyaspunbearing2094
      @problyaspunbearing2094 Рік тому +1

      @@ilajoie3 “hide yo lettuce hide yo wives”

    • @court2379
      @court2379 Рік тому +4

      I have one, one state over. I'm still not driving 475 miles (8hrs) to save $30 on a printer...

  • @spagamoto
    @spagamoto Рік тому +123

    Knowing a few lines of gcode is super helpful to make the machine do non-printer things too... for example, I needed to clean some small parts so I put them in a small container of cleaning solution on the printer's bed, then wrote a bit of code to heat up the bed and shake it around for a couple hours. Instant agitating hot plate. I also have my printer play a distinctive tone just after it completes waiting for heater temperatures, so I'm warned before it starts moving (I have a bad habit of sticking my fingers in there).

    • @Kalvinjj
      @Kalvinjj Рік тому

      Same, I set a beep after the bed leveling (I do a 4x4 grid) is done, so I can clean up the filament purge if it wanders into the print area, and 3 beeps at the end to signal it's done.

    • @hockeyguy820
      @hockeyguy820 Рік тому +10

      I like your heat/agitation cleaning idea. Another one I thought of is to use the heated bed to precisely warm up a smartphone before attempting to remove the screen, which is glued in. I also used the heated bed to accurately determine the minimum temperature difference that would keep my Kontax low temperature Stirling engine running.

    • @balls2bone
      @balls2bone Рік тому +2

      I do an M300 & M0 after heating but before homing. I have an annoying habit of leaving an empty plate of food, a tool or just junk on bed of my printers (all on Octoprint).

    • @caraeriu
      @caraeriu Рік тому +7

      I used it to heat up chocolate to melt and then reduce to the exact temp needed for tempering. 3d print a mold, vacuum form the 3d print and then make chocolate bars, chocolate coins, or chocolate Grogu. LOL

    • @marioferreri4352
      @marioferreri4352 Рік тому

      How do you loop the commands to move it back and forth?

  • @jamisonlm3
    @jamisonlm3 Рік тому +54

    In prusa slicer, I've set my color change gcode to let me insert nuts, magnets or anything else into a print with the G1 and M0 commands. This little bit of gcode will present the current print as if it were finished for 3 minutes before pulling it back in to complete it. It's very basic, but it works.
    G1 X0 Y220 ;Present print for objects to be inserted
    M0 S180 ;Resume print after 3 minutes

    • @dev-debug
      @dev-debug Рік тому +3

      Never thought of pausing a print to embed something into a part, very cool idea lol

    • @firehawkdelta
      @firehawkdelta Рік тому +3

      PrusaSlicer actually supports doing this -- pause at a specific layer, and wait until you press the button/knob before continuing. I've used it quite a few times to insert magnets or other "vitamins" into a print partway through.

    • @johnpekkala6941
      @johnpekkala6941 Рік тому +1

      G4 S180 do the trick also. G4 = Dwell, followed by P for miliseconds and S for seconds how long the machine should wait. The difference between M1 and M0 is that with M1 u can put a condition into the G code telling tha machine if it should care about the M1 or move on (Conditional stop) whilst with M0 the machine will always stop (unconditional stop) However from what I see this does not work on 3D printers, probably because M1 is mostly used with manual programming of CNC machines for test runs to avoid possible tool crashes on the first run and then when u seee the program runs properly u simply disable the condition and the machine will then ignore the M1 command and just continue. Like a debugging breakpoint in general programming. This is obviously not needed on 3D printers as there is no possibility for tool crashes like that and so only M0 is used here. M1 will maybee work as well (although it says deprecated on the Marlin page for M1) but u can I guess not put a stop condition in anywhere and so M1 and M0 will mean exactly the same to Marlin = unconditional stop.

  • @6yjjk
    @6yjjk Рік тому +33

    To heat both extruder and bed at the same time, but not proceed until both are up to temperature, use all four temperature commands:
    M104 S200 ; start heating the extruder and continue
    M140 S60 ; start heating the bed and continue
    M109 S200 ; wait for the extruder to reach temp
    M190 S60 ; wait for the bed to reach temp
    Much more efficient than waiting for one to heat and then the other.

    • @MakersMuse
      @MakersMuse  Рік тому +5

      Yeah that's a nice way to do it! I've always wondered if some companies choose not to do it for power draw reasons, or if it's just unoptimized code.

    • @WindyLion
      @WindyLion Рік тому +2

      You could maybe calculate the time taken to heat each element, then do the following:
      M190 S55; calculated intermediate bed value
      M104 S200; start heading extruder and continue
      M190 S60; finish heating bed
      M140 S200; finish heating extruder

    • @rpavlik1
      @rpavlik1 Рік тому +1

      As long as your power supply has enough juice to do it and not trigger thermal runaway protection (which might trip if progress isn't being made fast enough), and if it won't trip a fuse or over current protection in your printer I have noticed that there are definitely better and worse patterns for heating up my old Replicator 2x: I think it heats one thing up part way, heats the other most of the way, then does "heat both the rest of the way"

    • @markbooth3066
      @markbooth3066 Рік тому

      @@WindyLion That's pretty much what I do, and it's easy to see whether you need to tweak the intermediate set point by looking at the temperature graphs (one of the reasons I love my Octoprint).

    • @LaXi0rCZ
      @LaXi0rCZ Рік тому

      @@WindyLion I have my start GCode in Klipper and I'm calculating 90 % of the bed temp for 60 °C and 99.6 % for 100 °C (and linearly between those temperatures - it is good enough). Just after I reach this temp, I start heating nozzle and the rest of the bed temp. This way both heaters are finished almost at the same time.

  • @Summer_Lilac
    @Summer_Lilac Рік тому +5

    So fun fact about the beeps. Its built into the firmware on the ender 3 that it just ignores the frequency. I compiled my own firmware from a community made one and it will totally change tones. I have it play the FFX fanfare at the end of prints.

  • @dylanlasky2389
    @dylanlasky2389 Рік тому +40

    IMPORTANT NOTE FOR ENDER 3! The ender 3 saves firmware changes to the SD card, which includes PID tuning values. If you have multiple sd cards you need to have these changes on all cards, so I just stick with 1 sd card. I had a hell of a time figuring out why my printer kept under extruding after repeatedly calibrating e-steps, and it was because I was swapping sd cards.
    Edit: this is for all I know only for the v2 and other models running the same board.

    • @markbooth3066
      @markbooth3066 Рік тому +1

      I have multiple sd-cards, but I use git to version control the contents, to keep them all in sync. My process is quite simple...
      When I switch to a different card, I pull the changes from it's remote before adding new designs.
      After a successful print, I pop the card back into my PC, commit the changes and push the changes back to my remote, so it's up to date for the next time I need to switch cards.
      Not only does this mean I have a record of all of my prints, it also means I have a record of how all of my settings are changing, over time.

    • @dylanlasky2389
      @dylanlasky2389 Рік тому +1

      @@markbooth3066 very interesting, if I ever need multiple sd cards I'll try this.

    • @PiefacePete46
      @PiefacePete46 Рік тому

      @Dylan Lasky : I read this and thought "I've never had that problem... what's he talking about!"
      Then I realised that I have only ever used the same SD card for my file transfers! 🥴
      I don't think a lot of people are aware of this... thanks for the "heads up".

    • @markbooth3066
      @markbooth3066 Рік тому

      I had the problem that the I only inserted the SD card that came with my printer into my printer twice (enough time to run the benchy) before it died, and I lost everything on it. As I hadn't even considered this as a risk, I hadn't backed up the card before doing anything with it. This made me rather more paranoid about my printer SD cards than I might otherwise be. *8')

    • @Jawst
      @Jawst Рік тому +3

      Do you use Cura slicer?! I've been swapping and using random memory cards for years with no issues!

  • @balls2bone
    @balls2bone Рік тому +45

    Another really useful gcode command is M0 (wait for user)... Waits for user to press confirm button on printer. It is very useful for scripts and after pre-heating. I also found it very useful for doing a levelling routing where the printer moves to directly over each adjustment wheel at 0.25mm (thickness of a metal ruler I have).

    • @spagamoto
      @spagamoto Рік тому +13

      Also great for pausing the print to wait for the user to do something (like insert a nut or other captive object into a print)

    • @ClaymateDesigner
      @ClaymateDesigner Рік тому +3

      M0 doesn't work on some newer boards... Replace with M25.. The printer will pause and you need to press the encoder wheel and select "resume print". It took me a while to work this out after updating to a 32 bit board.....

    • @markbooth3066
      @markbooth3066 Рік тому

      Sadly, some firmwares don't support M0 or M25, and may even be different between different models in the same range. I bed levelling script for the Ender-3, using M25 commands, completely ignored them on my Ender-3 V2.

    • @balls2bone
      @balls2bone Рік тому +1

      Haven't come across that. I tend to keep my printers well up to date in firmware, but I compile my own Marlin for all my printers (even the Fabricator Mini) so that may be a factor!

    • @ClaymateDesigner
      @ClaymateDesigner Рік тому

      @@balls2bone It May be just the creality 32 bit board for the Ender 3 as my copymaster 300 still obeys M0.
      I compiled the copymsster code but the ender 3 is stock as supplied with the board.
      M25 is a workaround. I am certainly not suggesting M0 has stopped working for all printers..
      Respect...

  • @TDOBrandano
    @TDOBrandano Рік тому +13

    When you start to get into the M commands you should specify what Gcode dialect you are using. M302 will work with Marlin, but might mean something completely different on another firmware, or for a laser engraver, or a CNC mill.

    • @iFlyGood
      @iFlyGood 8 місяців тому

      big facts man

  • @shanematthews1985
    @shanematthews1985 Рік тому +12

    So I spent £670 on a dumb gluegun lol

    • @Flumphinator
      @Flumphinator Рік тому +2

      It’s not a very fast glue gun either.

  • @faeranne
    @faeranne Рік тому +1

    WAAAAH! Microcenter in my city?! That's a sponsor spot worth watching! Woot!

  • @northtustinsteamworks5172
    @northtustinsteamworks5172 Рік тому +3

    Love the beep tip!! Added to my end G-code!

  • @parjf
    @parjf Рік тому +1

    Glad Microcenter is still sponsoring you - makes me even more likely to just head to the nearby one in Long Island instead of buying elsewhere online. Also, this video was fun and now I will definitely mess with PID!

  • @rpavlik1
    @rpavlik1 Рік тому +8

    Note that g code is not universal, the specifics of the M codes in particular will differ between firmware projects, but I assume these are for Marlin which is the most popular. I think most of these but not all work with my old Sailfish-based printer (when piped through gpx, which is kind of like an early thing like klipper)

  • @henrymach
    @henrymach Рік тому +5

    This relative x absolute extrusion mode got me the first time I tried to calibrate e-steps. Fun times

  • @KittenRaee
    @KittenRaee Рік тому +4

    You forgot one super useful command to know about: M0 - Unconditional stop
    It will pause execution of any further commands until input (encoder wheel or touchscreen) is pressed. it also has text display part like M117 so you can use it (especially with M300 beeper) to pause print when you need to insert some nuts or magnets that are meant to be fully encased

  • @d3w4yn3
    @d3w4yn3 Рік тому +2

    This is very useful! I can make my printer look haunted while I'm at work, and see if my wife freaks out!!! Well played, good Sir, well played!!!

  • @my3dprintedlife
    @my3dprintedlife Рік тому +2

    Thanks Angus, its always good to be able to insert custom G-Code to make prints better.

  • @ScottLahteine
    @ScottLahteine Рік тому +3

    Good introduction! In terms of Marlin development I always try to emphasize the philosophy of keeping the firmware "dumb" so it will be obedient to our commands and not try to do anything too creative. The real smarts are behind the scenes and deal with the things we don't want to worry about: decidng how best to carry out movement commands efficiently, following the contours of the mesh, keeping temperatures stabilized, and so on. Let the slicers and other G-code generators do the truly creative stuff.

  • @stevewollschlager469
    @stevewollschlager469 Рік тому

    Thank you, love your vids. I am a Machinist (30 years) and use g-code on a daily bases. It is great to understand a few of the basic codes to fine tune your printer. I used it to fine tune my filament change process. Thanks again.

  • @iownyounoobs4388
    @iownyounoobs4388 Рік тому +1

    I found this G-code online but its really helpful for auto bed leveling ( I was having an issue where the nozzle would ooze during the probing and cause the prints to not lay down a consistent first layer)
    M140 S80.0 ; Set Heat Bed temperature
    M190 S80.0 ; Wait for Heat Bed temperature
    M104 S160; start warming extruder to 160
    G28 ; Home all axes
    G29 ; Auto bed-level (BL-Touch)
    G92 E0 ; Reset Extruder
    M104 S245.0 ; Set Extruder temperature
    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
    M109 S245.0 ; Wait for Extruder temperature
    I print using PETG so 160c is warm enough to not ooze but also doesn't take too long to heat up the rest of the way. As long as you set up the Z offset with a fully heated nozzle, the probing can start as soon as the bed is up to temp. It also heats up the rest of the way in the starting position so as soon as it get there, it lays down the purge line (any oozing during the heat up wont cause any issues)
    Made my ender 3 into a start it and forget it type of machine!

  • @marcfruchtman9473
    @marcfruchtman9473 Рік тому +4

    Probably the best G-code overview I have ever seen.
    ( I used to use G-code quite a lot with CNC, but I haven't really had to mess with it for 3D printing that much.
    Thanks for a great video.

    • @raymonschepers994
      @raymonschepers994 Рік тому

      Agree 100%
      I did also work with multiple CNC-machines and have picked up a lot of useful G-code and M-commands out of this video from Angus (again) 👍🏼

  • @SirTools
    @SirTools Рік тому +1

    Like always, thanks so much Angus, another great video and very good info for the 3d printer users.

  • @joemieszczur9735
    @joemieszczur9735 Рік тому +1

    My fav command is M810 to M819. the Macro slots. they let you combine common groups of commands in to one line. i do a lot of manual editting of my gcode out of the slicer. I just recently added M808 to my firmware, which is looping. since i dont have a CR-30 treadmill style printer, i use some ending gcode to slap the part off the bed with the X gantry and then restart the gcode. between M808 and M810 for my "reset extruder axis" and M811 for my "go in to rel positioning, move the z axis up one layer, and go back in to abs pos" i can print "forever" on my ender 3 pro. in conjunction with filament sensors it could run forever with minimal interaction.
    my next project is definitely going to be a filament splicer, so i can just load rolls of filament and print parts literally forever lol.

  • @patrolmaverick
    @patrolmaverick Рік тому +6

    I think I'll have to add M300 to the end gcode in the slicer. It would be handy to have an audible indication that the print is done.

  • @K106R3X
    @K106R3X Рік тому

    I never leave a video of yours without learning something new, thanks and keep it going please!

  • @GoldenAura32
    @GoldenAura32 Рік тому

    I've been using repetier host since 2013 and its amazing how well the program has worked even with all the innovations in the 3D printing space. Usually I use it for troubleshooting any sort of kinematic issues or bed level issues.

  • @Sharkbar_
    @Sharkbar_ Рік тому +1

    Congratulations on reaching the 1 million mark dude. Thank you for sharing your knowledge with us.

  • @chrisj4570g
    @chrisj4570g Рік тому

    Thank you for finally allowing me to understand the difference between absolute and incremental. That was a brilliant explanation.

  • @mikrom
    @mikrom Рік тому +6

    For sounds it depends on which buzzer is used. It can be active (making sound right after you connect power, no frequency control) or passive (you have to do some PWM to make it sound, therefore you can control frequency). Prusa uses passive one! So you can Google for some gcode melodies and put them in your end gcode. So printer can play an Imperial march if you want.

    • @cattythecat9161
      @cattythecat9161 Рік тому +3

      "My Imperator... the printing of the third death star is finished at last... " damdamdam dam da dam dam dadam* 🤣🤣

  • @DIYGarage_SoCal
    @DIYGarage_SoCal Рік тому +1

    Dude, thank you for sharing the PID tune code! My nozzle temps on octoprint have been all over the place. Now I know how to fix it!

  • @Michael-dt7sd
    @Michael-dt7sd Рік тому +1

    If you've got a printer that's pimped out with LED attached to the control board the G-Code for turning on/off or adjusting the color of the lights if they support it can be fun to play with. Flashing the lights a couple times after a print is done can draw attention if you don't want to use the beeper for that.

  • @palomin3d
    @palomin3d Рік тому +1

    Really nice and very well explained, thanks

  • @finnyzmeobmw
    @finnyzmeobmw Рік тому +1

    This is good to know Angus, appreciate the videos.

  • @zdenekvalek1538
    @zdenekvalek1538 Рік тому +1

    I think you have missed the pause/unpause commands M600/M601. Useful for inserting stuf in 3D prints or for manually changing filament. One problem with this command (at least on smooothie) is that it turns off heating, which is especially bad for bed heating mid print.

  • @farmhousefilms999
    @farmhousefilms999 5 місяців тому

    Exceptional video, I like how you split the screen as you entered the G-code.

  • @JRT3D
    @JRT3D 2 місяці тому

    :) All great info - think I'll start sharing this video with people as a great lead in to what else your 3dprinter can be programed to possibly do without much efforts! Keep up the awesome content!

  • @StoneFaceTraders
    @StoneFaceTraders Рік тому

    This is perfect timing, thank you.

  • @dev-debug
    @dev-debug Рік тому +2

    If you ever get a move out of range error when using Klipper it's normally because of absolute/realtive mode is wrong for X/Y/Z (G90 vs G91) or the extruder (M82 vs M83). It's a very common error people run into when writing macros for Klipper. To confuse matters even more some slicers let you set if gcode is generated in relative or absolute mode as well. Best way is to check what the current mode is, for example the variable printer.gcode_move.absolute_coordinates will be true if in absolute mode for X/Y/Z moves.

  • @kick1ass20
    @kick1ass20 Рік тому +2

    I can make my ender 3 beep? Why is it not an option by default?? Thanks for the tip.

  • @JonLaRue
    @JonLaRue Рік тому

    Also wowzer great video. Thank you so much for the effort you put into this video.

  • @onlooker251
    @onlooker251 Рік тому

    Great video. Really useful info on G-code. Thanks. 🇬🇧

  • @OganySupreme
    @OganySupreme Рік тому +1

    Also G2 is important, that's an arc move. This can help reduce stuttering especially for 8-bit motherboards, since it doesn't have to do many tiny G1 moves. The Arc Welder extension for Cura will do this automatically if you install it through the software marketplace and enable it in Special Modes. It'll also make smoother curves in your prints and reduce gcode file size.

  • @dl200010
    @dl200010 Рік тому

    I love Microcenter! I bought my printer and filament there!

  • @nathankora
    @nathankora Рік тому

    Thanks for this awesome video.

  • @bevinbell6600
    @bevinbell6600 Рік тому

    Awesome video. Definitely needed to know how to save stepper changes.

  • @holemajora598
    @holemajora598 Рік тому

    About a month ago I started training on a new machine at work. It is a 30 ton CNC press and we fabricate high precision Sheet Metal, assemblies and products and I was pleasantly surprised when I saw the computer programming and it was the same exact thing I run my hundred dollar 3-D printer with.

  • @lasersbee
    @lasersbee Рік тому

    That was interesting and informative Angus.... Thanks

  • @guykovacs9334
    @guykovacs9334 Рік тому

    M and G code is were I started in programing For FANUC CNC controllers 25 years ago, the thing that has got better is the GUI or interface software on computers to build the gcode file,
    Computer power and graphics cards have grown alot. Thanks for the video !

  • @davidg5898
    @davidg5898 Рік тому +1

    4:15 You definitely want to prevent the USB from powering the printer.
    A tiny piece of electrical tape over the 5V line on the USB connector can block the power. Or you can cut a USB cable open and reconnect all of the wires except the 5V. If you have steady hands, another option is to desolder the 5V connection of the port on the printer's mainboard.
    It's a design flaw in some printer brands' USB implementation, which should be data only. There are multiple reasons why it's a bad idea -- you're basically giving 2 independent 5V power sources (which may even be at different grounds) to the printer's mainboard. Usually it'll be fine, but it could easily kill the printer mainboard (less likely, but it could even bite your PC's USB port or motherboard).

  • @PiefacePete46
    @PiefacePete46 Рік тому +1

    Angus... a little "Whoopsy" I think. At 7:25 your mouth said "X 100" but your hand said "Z 100". I think your hand got it right. 😉
    Another great video, thanks. Thinking back to the 1980's (That's something I can do that you can't.) I used to get a real kick out of successfully making my BBC Micro perform something that I had coded directly in machine language, rather than BBC Basic. I have found that making something happen as I predicted, using G-Code, can give me similar "warm fuzzies".
    Keep them coming. 👍

    • @MakersMuse
      @MakersMuse  Рік тому +1

      Heh yep mean Z 100! Making code do what you want is definitely rewarding.

  • @HackMonkey
    @HackMonkey Рік тому +1

    M300 & M117 are super handy for debugging, and having the machine communicate what is up. I have several machines in the next room over from my work area. Each has different tune it plays at the end of a print to let me know which machine just finished. M600 for manual color changes is super handy for basic color swaps on just a couple layers.
    Sadly and frustratingly Bambu machines have no serial interface and no support for M300, M117, or M600.

  • @RonanRTW
    @RonanRTW Рік тому +1

    I've got two custom gcodes loaded into start G-code in prusa for my Ender 3 S1 (just below G28).
    G28 ; home all axis
    M420 S1 ; ensures the 16 point mesh from the probe is actually used for the print
    M413 S0 ; prevent writing to the sd card after each layer which can potentially make blobs on your print

  • @bigfoot650
    @bigfoot650 Рік тому +2

    M500 and M503 are definitely codes to know, especially when configuring things like esteps

  • @thebloxxer22
    @thebloxxer22 Рік тому +1

    M300 and M117 could be used for diagnostics, in conjunction with the registers (i.e. Out of Work Area error could list what position it is trying to reach using an M117 code and then use an M300 code a couple times)
    One set of absent codes is the G2 and G3 commands, which does Circular Interpolated movements. G2 is Clockwise, G3 is Counterclockwise.

    • @Kalvinjj
      @Kalvinjj Рік тому

      G2/G3 reduce the size of the G-code and the stutters incredibly. Arc Welder for Cura is highly recommended in my opinion to make use of this, sadly not all printers support it. I find it quite dumb honestly, very few cases are so starving of storage that you should disable it.
      Another one that takes some effort to use effectively but is pretty incredible is M486 - cancel objects.
      With the appropriate post-processing script on Marlin, you can separate a multiple object print into individual parts entirely, and cancel each one individually if you see need.
      The only time it doesn't work is with supports. If the support starts to fail on one part, you'll have to live with it and cancel everything or let it be, as Cura adds the Z change line right at the start of a support structure code if it has that.

  • @licensetodrive9930
    @licensetodrive9930 Рік тому +1

    The only G-code command that caught my attention over the years is M600, filament change, for simple but very effective multi-filament/colour prints.
    I discovered that PETG & TPU can stick together in these multi-filament prints, but still haven't yet figured out any designs which could benefit from being part TPU & part PETG.

    • @timothymack7435
      @timothymack7435 Рік тому +1

      Vibration dampening?

    • @licensetodrive9930
      @licensetodrive9930 Рік тому

      @@timothymack7435 Yes that's a good one, like feet for a printer you could have the first layers in PETG with holes for screw mounts, with the rest in TPU for the actual feet part for dampening.

    • @janstoefer9144
      @janstoefer9144 2 місяці тому

      Printing a seal / gasket onto the rim of a case.

  • @John-NeverStopLearning
    @John-NeverStopLearning Рік тому +1

    Thank you for the video

  • @truegret7778
    @truegret7778 Рік тому

    Good info.
    I started with Repetier when I had my PrintrBot Simple 1405 print 7 years ago. FYI Simplify3D (even the 3yr old version 4.1.2), UltaMaker Cura, PronterFace, Prusa (I believe via Octoprint), Slic3r all support a serial connection and limited control (speed and E-flow). I have Prusa recommend not to print via serial with the chance an errant command being sent. I have printed via my Mac using serial (Simplify3D 4.1.2) almost exclusively for 7 years and had no issues (99.98% serial, 0.02% SD card).

  • @mylittleparody2277
    @mylittleparody2277 Рік тому

    Thank you for this video.
    In the begining of 3D printing, it was almost required to know at least the basics of G Code.
    Brings back the memory...
    Or when the EEPROM wasn't implemented, and you had to tune your axises, and then reflash your board.

  • @TheJoschi8
    @TheJoschi8 Рік тому

    I'd recommend turning the power on while connecting to your printer. My Ender 3 has custom firmware installed, so my problems might not happen on your 3d Ender 3, but when I give it USB power and later turn on the Printer, all axies move at twice the configured speed and violently jam into the frame/buildplate (I actually lost a nozzle to this)
    I just learned to always turn on the power before connecting my PC or Raspberry Pi

  • @wouldntyaliktono
    @wouldntyaliktono Рік тому +1

    The joke at the beginning about ChatGPT is funny, but honestly it's not far from the realm of possibility. You can represent a 3d object as a sequence of geometric arguments (point clouds, or curves, etc). And GPT models (General Purpose Transformers) are really good at working with long sequences of values or tokens. So it's entirely possible for someone to train a vanilla GPT model on mesh data, and the corresponding slicer G Code. And what you'd end up with is something that could take an arbitrary mesh, and render a (hopefully) optimized sequence of G Code steps for any machine to use.
    In fact, I'd be _very_ surprised if the major printer manufacturers are thinking about this as they iterate on their slicer designs and optimizations.

  • @SmokeandLights
    @SmokeandLights Рік тому

    Thanks for this great video. I've known a good bit of GCode for a while, but I learned a thing or two anyway.

  • @chefmadewoodwork
    @chefmadewoodwork Рік тому

    Very valuable video here.
    I had the benefit of learning CNC prior to getting into 3D printing, so I had a foundational understanding of these concepts but the average person usually gets into this craft as a complete novice.
    I definitely learned a few things here and I still have loads to learn.
    Do you have any books that you might recommend to take a more in depth dive into the topic?

  • @richdobbs6595
    @richdobbs6595 Рік тому

    Thanks. This will be really helpful as I work on making filament changes more automatic. If there is no filament in the printer, there is no reason to wait for the hot end to heat up before loading filament.

  • @thesqueeeps
    @thesqueeeps Рік тому

    Seeing microcenter sponsorships always reminds me how damn lucky I am to have two of them pretty close to me (I’m in nyc) I always recommend the inland filament both the PLA and PETG+ (the only ones I’ve used so far) have given me 0 issues and print amazingly

  • @grillpig3860
    @grillpig3860 Рік тому

    P stands for proportional, I for integrating and d for differential. In short the p part has a linear feedback with an amplification factor which can be 0 to very big numbers. The Integrating part provides a feedback equivalent to the surface between the signal and the x axis of the difference between the setpoint and actual value. The D part outputs a signal equivalent to the rate of change of its input. These three are put in series and if you tune them just right and provide them with the right feedback, they will regulate whatever you want.

  • @eskanderx1027
    @eskanderx1027 Рік тому

    Good one mate!

  • @neatmachine
    @neatmachine Рік тому

    Most excellent video!! You have a great talent for clearly and succinctly covering a topic. Is there a printable list link you can share that shows each g-code and its function? Great topic universally useful! Thanks!!!

  • @Roskellan
    @Roskellan Рік тому

    G Code to pause prints, maybe move to somewhere convenience, turn off nozzle heat to allow you to extract filament, then when your ready come back to temperature, extrude until new filament loaded (suitable amount purged), then stop, go back to where it left off even if you nudged it a bit while you were messing about and resume printing. Was going to try and sort out some G-Code to include to do all this on my Qidi X-Plus that I would insert at a particular layer height but, it all seemed a bit much so I have never tried it.

  • @JanTuts
    @JanTuts Рік тому

    M300 is actually _super_ useful to audibly keep track of what the printer is doing, especially if your printer is very quiet and you are in another room.
    I edited the start gcode for my Prusa Mini to play the Mario Kart start line beeps right before printing the purge line (while also "revving" the nozzle in time with the beeps over to the start position of the line, so it starts extruding immediately on the last beep, as if it timed its throttle just right to get the boost, and the purge line is a skid mark... :P), so I can go over and check on the first layers, without having to sit around waiting near the printer.
    Likewise, I edited the end gcode to play the Zelda "Small Item Get" tune when a print is done, because that's exactly what happens:
    I get a small item... :)
    Lastly, I let it beep when the bed is cooled down enough for the fans to turn off, so I know I can go over and turn off the printer. This does inflate the estimated print time of every print though, since it's also part of the end gcode.
    I haven't done so yet, but I plan on also using it to announce other things that require attention, such as pauses for hardware insertion, manual colour changes, or start of the next sequential print (to again check on first layers).

  • @patpat33
    @patpat33 Рік тому +1

    I recently compiled marlin for my ender 3 V2 with a bltouch and I discovered the "G35 tramming assistant" it helps you to level the bed probing on each corner

  • @georgeinthejungle6095
    @georgeinthejungle6095 Рік тому +1

    As a CNC programmer with 22 years of experience i can tell you its easy to get used to it. When i look at the G code i dont even see the code anymore.All I see is blonde, brunette, red-head. Hey, you uh… want a drink?

  • @AkanoWire
    @AkanoWire Рік тому +1

    A cool thing to do is: put some electrical tape on the 5V on a usb cable (those to make your cable longer, dont know how they are called in english), then the mother board only gets on when the power supply is switched on o:

  • @normanbarud
    @normanbarud Рік тому

    I only ever use inland... Its Awesome!

  • @LULASVC
    @LULASVC Рік тому

    I did my Biqu B1 play the Super Mario tone when it finished a print with M300 very fun, while is useful because I can hear from the other room that my model is done.

  • @nathanbryans5744
    @nathanbryans5744 Рік тому

    Angus must be part google algorithm because I was just looking at this stuff yesterday. 😂 Keep up the great content!

  • @makedaevilmage
    @makedaevilmage Рік тому

    16:00 Haha, I guess you can make the printer use morse code ... for example SOS when it's done xD

  • @sdutango
    @sdutango Рік тому

    Awesome video

  • @RobertEchten
    @RobertEchten Рік тому +2

    I was just starting to look into the M300 command for a custom 'Print is done' tone, so I'm by no means an expert, but could it be the S parameter requires higher values to be able to be heard (and maybe internally it defaults to some value if the value supplied is lower than the frequency us humans can hear)? So instead of M300 S200 you would use M300 S2000 or something? (Haven't tried it myself yet)

    • @jeremylaidman6525
      @jeremylaidman6525 Рік тому +1

      The number after S is the frequency in Hertz. 440Hz is middle C. Human hearing is roughly in the range 20Hz to 20000Hz.
      The stock (modified Marlin) firmware on (some) Ender printers apparently overrides the frequency so all M300 sequences play at the same frequency. If you install the full-featured Marlin (eg compile your own) your Ender can play different frequencies.

    • @RobertEchten
      @RobertEchten Рік тому

      @@jeremylaidman6525 THank you for that clarification. Something new learned every day ;-)

  • @gd.ritter
    @gd.ritter 3 місяці тому

    I watched another video that gave the advice to use your heated bed along with the box your filament came in as a dryer. They said cut the bottom side off the box, lay it over your filament to insulate it some, and heat the bed. So I want to write a simple GCode to set the bed temp, present the bed forward and raise the Z out of the way. Is there a way to do a timer where it'll sit for 4 hours and then go into cooldown on it's own? Maybe M85 but I can't find specifically what that command does for a shutdown sequence and don't know what the max value it'll accept is. I'm assuming too huge a number could crash it.

  • @TheExtremeElementz
    @TheExtremeElementz Рік тому

    I found my Baud rate under “About this Printer” on my Ender 2 Pro. It is 115200 😁 I can’t wait to test this. Thank you!

  • @user-bt9ek2dv2y
    @user-bt9ek2dv2y Рік тому

    Great video! Was actually going through some gcode for my Sovol SV06. I really like the M300 command. Does anyone know if the M300 commands can be added to a Prusa Mini+? I have yet to try it but was curious since its mentioned Prusa uses this in their printers. Thanks!

  • @MibaCallabus
    @MibaCallabus Рік тому

    Cool video 😊
    At my makerspace, the printers (Enders) are set via Gcode to play their namesakes after print completion, things like Goldeneye and Mr. Bluesky... it's really wacky.

  • @sillysausage72
    @sillysausage72 Рік тому

    Great video!
    Question:
    Have a Neptune 3 Pro. Would you happen to know the best settings for petg? I'm using the elegoo slicer and for the life me, I can't get it to print right. Noob here. No problem with pla.

  • @kellyjean4981
    @kellyjean4981 Рік тому

    Thank you 😊

  • @djispro4272
    @djispro4272 Рік тому

    You can add U1 after M303 to input the PID tunes after it is done, so you only need to then type in M500

  • @peter.stimpel
    @peter.stimpel Рік тому

    My dear Prusa, don't be worried about Angus calling you a dumb computer controlled hotglue gun. I love you anyways ...

  • @kousakasan7882
    @kousakasan7882 Рік тому

    The main thing I would like to know is how to change the delay on my auto level. My cr10s ver1 has a short delay between steps. Before I finish the paper clearance test it returns all the way back to the home screen. Having to turn the dial and navigate back to auto level just to move the nozzle to the next step is such a pain. Is there a way to change it to a 20 or 30 second delay?

  • @cronowolf7793
    @cronowolf7793 Рік тому

    I live in Indiana so when I heard about the Microcenter opening over in Castleton I was super excited.... then my wallet started crying.

  • @KyberNexus42
    @KyberNexus42 Рік тому

    Pretty sure you can actually drain the battery if your laptop while connected to a printer via usb cable. I was helping my friend set up his Ender 3 Pro, (context: his laptop battery size/capacity is at or just about at the legal limit for here in the USA, and it’s in pretty good health), and in just about two hours it nearly completely drained his battery from about 90% to about 10%. We had Cura open & connected to the printer and his laptop was plugged into the Ender 3 Pro for most of the time, plus the ender was plugged into the wall (the laptop was running off battery power).

  • @iFlyGood
    @iFlyGood 8 місяців тому

    computer controlled hot glue gun was my nickname in college

  • @darren990
    @darren990 Рік тому +2

    Angus your wrong mate ...my printer sits there and looks pretty lol

    • @MakersMuse
      @MakersMuse  Рік тому +1

      Hey they can be dumb AND pretty!

  • @kira07
    @kira07 Рік тому

    I used to run my Prusa for few weeks during pandemic when LCD broke, I was able to print using the PC to manually control the machine etc. Then the bed heater broke :D but the printer was still going strong but only with PLA , those were the times when I sued that link a lot, I did lost few prints because windows updates restarting PC when I was not there..

  • @cordwhiteker97
    @cordwhiteker97 Рік тому

    I believe there is a command to power off machine. Useful at the end of a program with a long wait code for cooldown and then shut down if you won't be around when a print finishes

  • @petergamache5368
    @petergamache5368 Рік тому

    Best use of M117: Use your slicer's layer change custom G-code to insert variables, e.g. "M117 Layer [layer_number]"

  • @markbooth3066
    @markbooth3066 Рік тому

    When I first got my Ender-3 V2, I tried writing some G-code to help with bed levelling. It moved to the four corners of the bed and then to the centre but was intended to pause and wait for my Ok after each move, so I could adjust the dials. Sadly, this was when I found out that the stock Ender firmware did not support M25, It just carried on regardless, which is a real shame.
    Thinking of this makes me wonder how many 3d printers *do* support M25, as it seems like a really useful thing to have available.

  • @Greg-jw2dp
    @Greg-jw2dp Рік тому

    I'm a machinist and have been using g code for my entire life. Since getting into 3d printing, I've been wondering why printers don't utilize G2 and G3 arc commands. You could make a circle with one line of code instead of hundreds. My longest programs machining is about 200k of code. A simple 3d print of a toy was a few million. All because it only programs in linear commands. (A, J and, I command would be needed though). There are so many parameters that aren't being used. Anna what about, macros? Would a printer read it? Or the ability to pull up separate programs and run them within other programs. We should get together and blow the lid off printing. Right now it's so so basic.

  • @ADBBuild
    @ADBBuild Рік тому

    Got a link to the model of the vase you made with the two-tone filament?

  • @Norm1991
    @Norm1991 Рік тому

    For the waiting in some of my printer profile i had a G4 S450 :wait 7,5 minutes to help my bed to warp properly before some printing. i use it before G28

  • @Hedrakk1
    @Hedrakk1 Рік тому

    Have you ever try circular interpolation (G2 and G3) on a 3D printer?

  • @dazza3d154
    @dazza3d154 Рік тому

    H Just wondering if there is a command to dump the firmware. As I want to update mine, but would like a backup of the current state, cheers Darren.