USB connection problems can be divided in two main categories: 


  • Transient errors. When the USB connection is temporary dropping. This can happen for example during the acceleration/deceleration of the motor 
  • Permanet problems. When the controller cannot connect to the Roborun+ with USB at all


The two scenarios will be analyzed in the next paragraphs.


1. Transient errors


The USB connection is not considered stable so it should be used only for the initial configuration of the controller and not on the final applicaiton. The USB connection can drop if the controller resets or if there is noise in the USB cable.


1.1 Controller resets


The controller can reset if the battery voltage drops. Make sure that the power supply or battery can provide the required current. 


1.2 Motor noise


When the motor accelerates/decelerates, the motor current increases and so does the amount of electrical noise captured by the USB cable. If the USB connection is not stable, try the following:


  • Use shorter USB cable
  • Use a shielded USB cable 
  • Use a ferrite coil  
  • Make sure that the USB cable stays away from the power cables


2. Permanent problem


In general, the USB connection can permanently fail due to the following reasons: 


  • The controller is in DFU mode (firmware upgrade mode) 
  • The controller's firmware has crashed/is wrong
  • The USB cable is bad
  • The USB port on the controller is damaged


The permanent USB failure can be troubleshooted by following the below flow chart. A working RS-232 to USB adapter will be required to follow the troubleshooting steps


Each step of the chart is analyzed below:



DFU mode


The controller can get in DFU mode, if you click the "Update firmware with USB" button, or if it resets more than 5 times within 10 secs (because of bad firmware or script). If it gets in DFU mode, it will stay there until the "Quit" button is pressed in the DFU loader window. 


To check if the controller is in DFU mode follow the next steps:


1. Open the DFU loader by typing "DFU" on the windows search bar 


2. If the dropdown menu with the STM devices in DFU mode is not empty, then the controller is in DFU mode



3. Click the "Quit" button and reset the controller


If the controller was previously in DFU mode, now it should connect to Roborun+ successfully. Another way to identify if the controller is in DFU mode is to check the LED blinking pattern. The DFU mode pattern is shown below: 



RS232 connection


The controller can connect to Roborun+ through RS-232 by using a USB to RS-232 adapter. Before testing that, you must make sure that your RS-232 adapter works and that can communicate with other RS-232 devices. You can find more information about testing the RS-232 adapter in the Troubleshooting RS-232 communication problems article. If the controller can connect with RS-232 port but not with USB, that means that the firmware is working properly and probably the USB port is damaged.


Reviving the controller through RS-232


If neither USB nor RS-232 seem to work, then the controller firmware might have crashed. This scenario can happen only if a wrong firmware has been installed or a bad script has been used. There is a method to re-flash the controller's firmware by using RS-232, even if the controller is unresponsive. To do so, follow the article How to restore an unresponsive controller.


If the firmwar update cannot be performed then probably the RS-232 port is damaged as well and the controller should be replaced.