There are several possibilities. I might suspect a dirty feed-gear (hobbed gear); bad idler-arm tension (the springy arm that presses the filament against the hobbed gear); or bad e-steps calibration.
The printer uses stepper motors not just to move the X, Y, & Z axis… but also to advance filament. The filament is axis “E” (for Extruder). The printer was calibrated by factory testing how many “steps” it needs to send to the stepper motor to advance the printer by some given distance (on each axis).
If the printer isn’t correctly calibrated, it can result in either over-extrusion or under-extrusion. If you are getting gaps as it prints along a path, it may be caused by under-extrusion.
Under-extrusion isn’t necessarily caused only by not having correct e-steps… it can be caused by a dirty hobbed gear (the feed gear that has the “teeth” which pushes the filament into the print-head). A loose idler arm (the tension you set to press the filament against the teeth on the hob gear) can affect this setting. Sometimes different filaments can effect the setting. TPU are “flexible” filaments (they seem rubbery) and do not advance the same as more rigid filaments.
Before you tweak too much … it isn’t necessarily a requirement that you re-calibrate your e-steps frequently. This is something most people only do occasionally.
IF YOU REFLASH YOUR FIRMWARE … you should first note your current settings (write them down) because re-flashing usually wipes out previous settings. The printer would have been factory calibrated, but re-flashing can wipe that out.
Also… make sure the hobbed gear is clean of filament. If filament starts to chew up (common anytime a part has a lot of retractions in a short distance), the chewed filament will start to clog the teeth. I keep a can of compressed air next to my printer. A few puffs will blow the filament off the teeth (the filament was “cold” when it was being chewed … so it wont be stuck to the metal and is easily blown clean).
Set the idler arm tension to be moderately tight. You don’t want to under-tighten (which can result in slipping) or over-tighten the tension.
Next… in the Cura “Material” menu, you’ll see a setting for something called “Flow” (flow rate). This shows up on your printer as the “Fr” on the mini LCD panel. Normally the value is set to 100 (100% flow based on the e-steps calibration). If you think the printer is under-extruding, but you know you’ve calibrated e-steps, your idle arm tension is good, your hob-gear is clean, etc. … then it may just be that the filament you are using needs a tweak to the extrusion rate. This setting will let you do that. Make tiny adjustments … e.g. instead of 100% … maybe you try 102% (if you go too high then it can over-extrude and cause problems elsewhere in the part.)
How to calibrate:
See this page: https://ohai.lulzbot.com/project/extruder_calibration/calibration/
You can also find numerous YouTube videos that walk through the process. Basically the idea is to order the printer to extrude a known length of filament (this is the “cold” 2.85mm side … not the post-extruded side). You ultimately want to know how many steps are needed to extrude just 1mm. But that’s hard to measure accurately. So instead you extrude 100mm of filament, and measure how accurately the printer does this … then increase or decrease the e-step value accordingly. E.g. if I ordered it to extrude 100mm but it really only extruded 98mm … then it is under-extruding by 2%. 100 ÷ 98 = 1.0204 … so you’d multiply the current value of e-steps by 1.02 to arrive at the new value and program that as your new e-steps value.
Different materials might advance at a different rate depending on how far the teeth in the hobbed-gear can dig into the filament (the hardness and flex of the filament). But it isn’t usually necessary to re-calibrate e-steps for every new type of filament. Set it based on a filament you use most often (e.g. suppose that’s PLA) and if you decide to print something else you can tweak the flow rate if needed. But don’t tweak anything unless you are sure your feed gear is clean and your idler arm tension is good.