The Arduino tone()
function and Servo library use hardware timers to provide greater timing precision, even in the face of contention from other activities (e.g. from the WiFi stack on the ESP8266).
Unfortunately, Arduino tone and servo support is not universal. The MicroBlock Tone and Servo libraries attempt to use low-level tone and servo support when it is available. Otherwise, they fall back on the MicroBlocks own task scheduler for timing, which is useable but can have some jitter. For example, music can sound rough or servo's may jitter a few degrees around the desired angle rather than keeping perfectly still.
Tone and Servo support has now been added on most MicroBlocks boards, with just a few exceptions: