Extruder motor does not turn

  • When printing from Cura on my laptop via USB, my extruder motor does not turn to extrude filament. However, when I use the "move axis" command in the firmware (on the little screen on the printer), it seems to work fine, extruding plastic smoothly. The nozzle temperature is where it should be (230 degrees or so for ABS) while printing and I get no error messages in Cura.



    What would cause the extruder to not function when printing even though it seems to be fine electrically, mechanically, and in firmware? Is there g-code from Cura that could be incorrect?



    I'm not sure where to look for problems.



    This is my first 3D printer. It is a Alunar M508 (a Prusa clone) that I got for free in a partially disassembled state. The firmware seemed to be screwed up when I first started using it. The firmware that came on the SD card with the printer would not compile in my Arduino software, so I used a Marlin firmware from here:
    https://github.com/camalot/alunar-prusa-i3-marlin-i3-firmware



    I had to make one change to the configuration file to reverse the X home direction, but otherwise I have not changed the firmware settings or anything. The new firmware does not recognize the SD card slot at all, but that's a different story.



    I'm using Cura to print via USB. The printer is set up as a Prusa I3, using the "Marlin" GCode flavor. Nozzle size: .4mm, Compatible Material diameter: 1.75mm.



    Start Gcode:



    G21 ;metric values
    G90 ;absolute positioning
    M82 ;set extruder to absolute mode
    M107 ;start with the fan off
    G28 X0 Y0 ;move X/Y to min endstops
    G28 Z0 ;move Z to min endstops
    G1 Z15.0 F9000 ;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 F9000
    ;Put printing message on LCD screen
    M117 Printing...


    End Gcode:



    M104 S0 ;extruder heater off
    M140 S0 ;heated bed heater off (if you have it)
    G91 ;relative positioning
    G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
    G1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more
    G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
    M84 ;steppers off
    G90 ;absolute positioning


    Edit to Add some Gcode from the beginning of the test print:



    ;LAYER_COUNT:127
    ;LAYER:0
    M107
    G0 F3600 X86.923 Y86.649 Z0.3
    ;TYPE:SKIRT
    G1 F1800 X87.522 Y86.134 E0.03941
    G1 X88.17 Y85.683 E0.0788
    G1 X88.861 Y85.299 E0.11824
    G1 X89.586 Y84.987 E0.15762
    G1 X90.339 Y84.75 E0.197
    G1 X91.113 Y84.591 E0.23642
    G1 X91.898 Y84.51 E0.27579
    G1 X92.3 Y84.5 E0.29586
    G1 X117.7 Y84.5 E1.56307
    G1 X118.489 Y84.54 E1.60248
    G1 X119.269 Y84.659 E1.64185
    G1 X120.034 Y84.857 E1.68127
    G1 X120.774 Y85.131 E1.72064
    G1 X121.483 Y85.479 E1.76004
    G1 X122.154 Y85.897 E1.79948
    G1 X122.778 Y86.38 E1.83885

    do you have single extruder device?

    Two things: what's in the body of your gcode file, where extrusion (motor drive) is turned on and off every time the extruder head "jumps" to a new position? and, try loading same gcode onto a memory card and running directly off that, just incase something really goofy is going on with your usb connection. Oh, and I do not know whether the change in firmware requires a corresponding config change in Cura.

    @profesor79 Yes, it is a single extruder device.

    @CarlWitthoft I've added the beginning of the gcode for the print (the skirt, really) to my question. I don't know what it is supposed to look like. Unfortunately, the new firmware does not seem to recognize the memory card slot, so I can't print from a card right now.

    if you are using merilin and uploading via arduino ide, uncoment '#define SDSUPPORT' to get your sd card back.

    Can you describe what _does_ work when you print?

    Try this: 1. Reset the printer using the button or power on. 2 find in Cura or other app where you can send commands directly to the printer. (Cura: printer control panel) 3 Manually send ONLY this G-Code, see if it extrudes: M82 ;set extruder to absolute mode G92 E0 ;zero the extruded length G1 F200 E20 ;extrude 20mm of feed stock

    You guys are awesome. @profesor79 - The SD card menu is back! I haven't tried it yet, but thank you. @DavidLotts - I can't find that in Cura, but I have Printrun/Pronterface and can send commands in that. It looks like the E values are inverted. `G1 F200 E20` turns the motor but does not extrude. `G1 F200 E-20` does extrude. So now I'm trying to figure out where in the Configuration.h I can reverse that.

    Got it! It's extruding now. It's still uneven and messy, but I think I've got the weird part sorted out. Thank you all!

    @DavidLotts - As your comment provided the solution, maybe you should posted it as an additional answer? It would make the question shown up in the search results better. Thanks.

  • It turns out the problem was a firmware issue. Using the gcode below (from David Lotts in the comments), I was able to determine that the extruder was running backwards. A flag in the firmware reversed it, solving the problem.



    M82 ;set extruder to absolute mode 
    G92 E0 ;zero the extruded length
    G1 F200 E20 ;extrude 20mm of feed stock

License under CC-BY-SA with attribution


Content dated before 7/24/2021 11:53 AM

Tags used