Hi Kyuhyun,
Which code did you change - your protocol? Or the firmware?
The state machine refreshes every 100 microseconds - meaning that it reads all of its input channels, determines any state changes and updates the output channels + modules. During the trial, for efficiency, it keeps track of time by how many refreshes have occurred. To ensure that this count is an accurate measure of time, at the end of your trial the state machine returns how much time elapsed during your trial as measured by its clock, as well as how many 100-microsecond timer callbacks were executed. When these separate measures of trial-time are in conflict by more than 1ms, you'll see the warning.
This message will appear if several refreshes took too long (greater than 100 microseconds) to execute. This happens if changes to the firmware made the code less efficient, or if a specific combination of inputs took too long to process. In our state machine examples folder, we have a battery of state machines which we test prior to each firmware release (as well as several example protocols) - but it isn't possible to test every possible setup. If you are using firmware from the repository without custom modification, please send your behavior protocol to support@sanworks.io and we'll test it to determine why you're seeing this message.
That being said, if 1ms of imprecision is acceptable for your research application, it's safe to ignore the message.
-Josh