A: Microbasic scripts can cause this to occur if controller is loaded with a script that is faulty and start up is set to run script on "Auto Start".
To recover, do the following steps, for best results, connect the RS232 instead of USB.
Power down controller if controller is on.
Go directly to the "Scripting" tab of Roborun+
Type in the following code in the first line.
Then place mouse over button that says "Download to device".
Power on controller.
As soon as the stop sign on the upper right corner of Roborun+ turns red, click on "download to device" to send the code to terminate and clear out the faulty script. If successful, the script will stop trying to run and communication will be stable again.
Precaution steps to take to avoid this problem in future.
Make sure that script is not set to "auto start" upon power up in the configuration settings under "Startup".
Test scripts thoroughly before using the script "Auto Start" upon power up. At the top of the browser there is a button that says "Run" next to where it says "Script". Click on this while not in the "Scripting" tab.
Correct any faulty syntax. Examples of faulty syntax below.
Changing a configuration parameter via setcommand() instead of Setconfig().
Setcommand(_MMOD, 1, 1)
Should be Setconfig(_MMOD, 1, 1)
The compiler won't know the difference between the 2 above since it just makes sure that the syntax appears to be correct. The controller on the other hand will detect there is a problem and will cause the controller to reset.
There are some exceptions to this. Setting a value to a watchdog timer will use Setcommand.
Setcommand(_RWD, 0) ' disables watchdog timer. Refer to user manual for references.
You can also see if a reference will be a Setconfig() or setcommand() by sending the serial commands in the "Console" tab.
The command or query will be echoed back followed by a "+" or a "-". If a "+" is given, then the command or query executed was successful.
! Runtime command - Setcommand()
? Runtime query - Getvalue()
~ Config query - Getconfig()
^ Config change - Setconfig()