Hey guys

This week-end I try  my inMoov with the lastest build (1355 at that time) and it was not working

Everything seem fine with MRL (no errors messages) but everything that connect to the arduino where not responding (servo, neopixel ring, PIR sensor).

For the servo to work, I have to detach and attach them again and then they work without any further problem.

The problem seem to be between the arduino.connect and arduino.getVersion methods. It seem that when MRL try to get a MRLComm version number, messages send for the arduino never reach the arduino. By example, if I do a arduino.connect than attach a servo right after, MRL report the servo as attach, but the arduino don't know about it.

arduino.isConnect() return true

After that the arduino service got his version number, everything work fine

 So as a quick fix on my local build, I add this code in the services that use arduino connect method

int wait=0;
while(arduino.mrlCommVersion==null){
   sleep(1);
   wait++;
   if(wait>=10000){
       error("Couln't connect %s", this.getName());
       return false;
    }
}
 
Then everything work as expect
 
Just want to report my problems
Christian