Solved: Serial Port Connection Time on Arduino 101

Hello,

This is my first post here. I hope this isn't too simple a question. I did search the Forums but couldn't find the right search terms to hit on a similar topic.

I am porting a design from a PIC to an Arduino 101. I am new at Arduino and its IDE but not new to embedded programming or electronics.

I have noticed that the Arduino seems to be rather slow at starting up the Serial connection (at least on the 101 I am using). Upon compiling and uploading the Sketch, the IDE shows a message that says "SUCCESS: Sketch will execute in about 5 seconds." I have found that I often have to wait 15 seconds or more before opening the Serial Monitor to talk to my project.

If I don't wait long enough and try to open the Serial Monitor, I get the message "Board at COM5 is not available". Once I get that message, no further tries at opening the Monitor are successful. I have to either hit the Reset switch on the 101 and wait for 15 seconds or so before trying again or else re-upload the Sketch and wait a bit to try again.

Is this normal behavior for all Adruino boards or is it specific to the Arduino 101? (Perhaps the 101 takes a bit longer to initialize the x86 core in the Curie before the AVR Sketch can run. :confused: ) Maybe other Arduino boards do start up within the 5 second time-frame indicated by the IDE message.

Are there any configuration options that can make the start-up more consistent? Sometimes, even 15 seconds isn't enough time to get a clean start-up of the Serial Monitor.

Any help in understanding the seemingly long delay I am seeing would be appreciated. It's not really a major problem -- just a curious nuisance at the moment.

Best Regards,
John

This may or may not work but if you have any antivirus or other anti malware software then I have found my times for compile and serial etc to be improved by adding the Arduino items to the exclusion lists of such software.

Going to make an assumption (maybe wrongly) that its a windows computer you use ?

Some speed issues may also relate to the computer you are running on and the start up options you have enabled too.

Have seen top of the line computers operate so slowly due to just being gummed up with garbage and unwanted apps or just never ever having a simple clean up.

Check your security as mentioned above first then take a look here and ignore anything that doesn't pertain to you.
Whilst you are still in Wise Reg cleaner check out the optimisation option as it does help with quite a few things but check which ones you may not want to use.

If its Linux or Mac then hopefully somebody else can step in here ?

Bob,

Thanks for the input. It's always good to get another set eyes on a problem / nuisance such as this.

Yes, you guessed correctly. This is a Windows system which I use for development / technical processing. (Windows 8 Pro, 4.1 GHz i7 3930K (6 core HT), 32 GB quad-channel Memory, SSD storage -- it's plenty fast for most things.) I keep it pretty clean with respect to unnecessary start-up programs and services.

I did try disabling the anti-virus software. (Good guess, I had not thought of that.) Unfortunately, it made no discernible difference in the required delay before being able to successfully start the Serial Monitor after a Sketch upload.

John

You could also try tweaking the USB power settings too. All min are set to save no power at all and keep everything up and running.
Also no sleep settings at all.
USB 3.0 can sometimes be a PITA with Arduinos so if you have USB 2.0 try stick to those.

Another thing to maybe be wary about is Arduino related USB drivers from other sites.
Its taken me almost two months to track down a serial issue and only then after a lot of help from some of the backroom members of the Arduino dream team. May not be in your case but USBSER.SYS in my case was at fault and was either the Adafruit one or the .ORG one.

I was unable to roll back and ended up with a bare metal restore from my server.

You maybe already tried opening the serial monitor first before you upload ?
The IDE will simply stop it until the upload is done and once the serial port is available again will start putting out the data.

Bob,

VERY COOL! Opening the Serial Monitor before uploading the Sketch works perfectly. There is essentially no delay when I do it that way. For some reason, I had thought the Monitor needed to be closed before uploading a Sketch they both were using the USB interface.

THANKS! Nuisance solved.

John

Few results here

Regular IDE 1.6.12 (win 7 x64 pro)
1-3 seconds Monitor already open
6-8 seconds Monitor opened after upload

CREATE IDE
1-2 seconds Monitor already selected
7-12 seconds Monitor selected after upload

Create is faster if its already selected but internet speeds may play a role.
Compile times also seem faster in CREATE.

I would also like to suggest 2-3 things

It is better to connect Arduino directly to your computer rather than the hub.
USB 3.0 ports sometimes need to be enabled in the BIOS. So you may have to check that is enabled. I have found out that even though I have a USB 3.0 port but it is disabled in the BIOS, it is problematic for use with Arduino 101

If you have to use a USB hub make sure it is a powered one. The best one is expensive but it is what we use in our testing. https://www.amazon.com/exec/obidos/ASIN/B00FR795WA/ezusbhubs-20 Not affiliated with this company but I am in the business of continuous integration and so far this has worked for us

The last thing is the quality of your cable. I would recommend not more than 2 meters and have a ferrite chokes to protect against RF and EMF. For example Tripp Lite 6ft USB 2.0 Hi-Speed A/B Device Cable Ferrite Chokes M/M 6' - Walmart.com

Unfortunately we are at the mercy of Windows OS and any OS for that matter in connecting to USB devices. Some anti-virus software may have rules that cause delay when you insert USB devices. If you can reduce USB traffic like USB speakers or headsets that would be helpful as well.

Of course it is a case to case basis and there may be other factors that cause delay.

@ noelpaz

From my own POV I would say that if you are getting a hub then make sure it is USB 2.0 and NOT 3.0 as your link suggests. My 101 also dislikes USB 3.0 so I simply plugged in a USB 2.0 hub and plug into that and it works just fine.

There are varied degrees of success with USB 3.0 mainly dependent on the chip-set, its integration and in some cases its age. But for the most part it is better to avoid USB 3.0 with Arduinos at least.

The price range is about right for sure ($30-50). as many of the cheaper ones are simply not suitable in the longer term.
There is a thread somewhere around where people posted thier suggestions and results of USB hubs.

As you say it should be powered and the supply should be of enough capacity to supply max current to all the ports @500mA each.