The following saved me from under extrusion on Ender 3 Pro.
Check the diameter of the material referenced and the nozzle parameter in your slicer (Cura, ...). Then re-slice.
If not sufficient, it may be a printer parameter issue. The extruder parameter is missconfigured: the stepper to filameter distance ratio is not correct and as a result, it does not feed the requested length of filament. To fix the printer parameter, send the following gcode sequence (use a G-code console like "GCode Sender - Pronterface"). We will follow this procedure:
- ask to feed 100 mm of filament
- mesure the actual length feeded
- read the parameter inside the printer
- write an fixedcorrect value.
G-code:
M83 ; set to extruder relative mode
; Be ready to mesure how much filament will really be consumed
G1 E100 F100 ; request 100 mm of filament
; Let "L" be the length in mm you mesured
; Now read the extruder related value in the printer
M503 ; and let "V" be the last number at line "echo: M92"
; Then set the correct value
M92 E{V*100/L}; Eg "M92 E222"
M500 ; write to memory