3D printing problem: waved walls The problem

When I print with my mElephant 3D printer from Makeblock, the prints come out with waved walls like in the picture below. I am using PLA filament from https://makeblock.lt



What I tried

I tried changing temperatures 190-220, tried to change the flow rate. Also checked if the bolts are not lose. Everything seems good.

My printer
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: