I just received an Arduino 101 so I did the following in a wave of excitement...

  1. Connected the USB cable between it and my Macbook Pro
  2. Started the Arduino IDE version 1.6.7
  3. Wrote a little bit of code
  4. Selected Tools | Boards | Boards Manager... and installed the Intel Curie Boards as per Getting Started
  5. Selected Tools | Board: "Arduino 101"
  6. Selected Tools | port: "/dev/cu.usbmodemFA141 (Arduino 101)"
  7. Selected Sketch | Upload

I was expecting something amazing, but I got the error:

Starting upload script
Payload: /var/folders/jr/5rmqcrqj58103d4p1f6_3sjr0000gn/T/build7c6ce067b9e8a57f9917c651ec494989.tmp/orientation.ino.bin
Waiting for device... 
ERROR: Timed out waiting for Arduino 101.

Is there anything I can do to debug this or did I miss a step perhaps?

(I tried the good ol' turn it off and on again, including shutting the IDE down).


Press the reset button next to the USB port. (either one, the master reset is between the DC jack and USB ).

This will cause the Arduino 101 to reboot and enter DFU mode for 5 seconds if it is connected on USB. The download will proceed when the Curie enters DFU.

The IDE uses a baud-rate signal over USB. It is a virtual serial port, so baud rate doesn't matter. But when the host side (Arduino IDE) switches the baud rate to 1200, the board will reboot and enter DFU mode for download. If it gets stuck for some reason and misses the message to reboot, you can just hit the reset button and accomplish the same thing.

| improve this answer | |

If the path to your source file contains a space, it might be causing this error. For more information, and a workaround, see this topic in the Arduino forum.

| improve this answer | |

I was having the same problem: unable to upload a program to a brand new 101. Now it works.

I can successfully load both BLE LED example programs and also the ReadTime program read via Serial Monitor. (BTW, using the iOS MCP app, you need to send either 00 or 01 to turn the LED on/off.)

I am running a modern 64 bit laptop with USB 3.0 ports. All ports work fine with either of two USB cables that I have. So I don't believe the problem is related to USB cables or USB 2.0/3.0.

How did I fix it? Well, I tried several things and I'm not sure which one fixed it, so perhaps someone can try these methodically and confirm the best fix.

  1. Uninstall the Arduino IDE and manually deleted the Arduino15 folder in user..\AppsData.

  2. Restart laptop.

  3. Download and install IDE 1.6.8. (Earlier failed attempt was with current 1.6.9.)

  4. Restart laptop.

  5. Open IDE. In Boards Manager, searched Intel, selected Curie boards, and install v1.0.4. (Earlier failed attempt was with current 1.0.5.)

  6. Restart laptop.

  7. Open IDE. Plug in 101 for the first time. Device showed up normally in Device Manager.

  8. Select proper port (COM5 for me) and proper board (101). Select example file LED under CurieBle. Click verify. Looks good. Click upload. SUCCESS! Can now see the 101 in nRF MCP, can turn LED on/off. BLE functions now work with 5V USB charger. (but not 9V battery, guess that's not an option) When connected to laptop USB 3.0 port, the 101 now stays in COM5 the entire time, no longer cycling on/off when I try to upload. No need to press either reset button during upload.

So the fix is either one of the software downgrades, or careful installation procedure.

Previously, I tried the dfu-utils updates but that didn't fix this problem.

| improve this answer | |

It's already documented in the arduino.cc, but I will just add here as reference:

Linux only: some distributions need to be configured to perform the upload. After installing the core, execute

sudo ~/.arduino15/packages/Intel/tools/arduino101load/1.6.4+1.18/scripts/create_dfu_udev_rule

inside a shell to gain upload permissions.

Reference: Upload Procedure

| improve this answer | |

I am running Ubuntu 18.04 and I had a similar problem but solved it in the end.

What worked for me was:

  1. Update Arduino Curie driver in Boards manager to the latest version which is v 2.02 at the time of this post

  2. Run the following command in terminal in order to grant execution rights:

    chmod +x ~/.arduino15/packages/Intel/hardware/arc32/2.0.2/scripts/create_dfu_udev_rule
  3. Run the executable

    sudo ~/.arduino15/packages/Intel/hardware/arc32/2.0.2/scripts
  4. Restart Arduino and try to reupload

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.