I had the same problem with ABS, but printing different test objects I found out that the distance between the wavy structures depends on the cross sectional area of the object. Printing the testcube in 70.1% (1/sqrt(2) times of the original size) takes half the time per layer and the distance between two grooves doubles. I was printing ABS with 0.1 mm layer height and the simple bang-bang heat bed controller. The temperature is clearly wandering for 4° with a period of aproximately 2.5 minutes, which corresponds to the groove distances. After changing to a PID controller for the heated bed the temperature stayed within 0.1°C and the problem was gone. Several hundredths of a millimeter thermal expansion of the heated bed can have substantial impact at 0.1 mm layer height!
You can enable the PID controller for the heated bed in Marlin or Skynet firmware by enabling (removing the //
) here:
//#define PIDTEMPBED
and disabling (putting //
at the beginning of the line) here:
#define BED_LIMIT_SWITCHING
in Configuration.h. Calibration of the PID controller can then be done with the GCODE Command:
M303 E-1 S90 C8
for 90°C. I had to preheat the heated bed before, otherwise the calibration would run into a timeout. The command will return parameters for the PID algorithm. The values can then be applied by the
M304 P579.01 I100.87 D586.0
GCODE command (here for example values). Everything can then be saved to the EEPROM with
M500
Bang-Bang controller:
PID controller: