Problem with dfu-util trying to upload on Arduino 101

Hello everyone.

Im trying to interface an Arduino 101 with Science Journal app on my android.
I'm doing it via PlatformIO on VScode and I'm pretty new on such a thing.

I managed to compile but now I have trouble trying to upload the firmware.
Don't know exactly what kind of information you could need to help me, so I simply begin posting here what the terminal say to me.


That last sentence seems to be the problem: "Need to specify dfu-util location"

Hope someone can say something about it.
Thanks in advance.

This is the platform.ini file and as you can see, I had to force an old intel ARC32 version (1.2.0) to manage it to at least compile.

Hi @AT_Paul. I don't know anything about PlaformIO, or even about the specific version of the tool that is used by the intel_arc32@1.2.0 platform. However, I do have some general knowledge of the arduino101load tool that is producing this "Need to specify dfu-util location" error message.

This error occurs when you don't set the installation path of the dfu-util tool via the -dfu flag of the arduino101load command.

This is how the arduino101load command looks for a successful upload on a Linux machine when using Arduino IDE:

"/home/per/.arduino15/packages/Intel/tools/arduino101load/2.3.0/arduino101load" "-dfu=/home/per/.arduino15/packages/arduino/tools/dfu-util/0.9.0-arduino1" "-bin=/tmp/arduino-sketch-6C1937FC4D22FB566650D61C624A0132/482.ino.bin" -port=/dev/ttyACM0 "-v" -ble_fw_str="ATP1BLE00R-1631C4439" -ble_fw_pos=169984 -rtos_fw_str="" -rtos_fw_pos=0 -core=2.0.0

Thanks for your reply.
What you said is little out of my reach on a Windows machine but I will work on it thank you.
Actually, I found a trick that did the job.

I did reckon the problem could be in the arduino101load tool that was too fresh to be compatible with the outdated intelARC 1.2.0 platform version I had to use to make it to compile.

So I downloaded an older arduino101load Git version and I tried to switch the executables.

It worked somehow and I managed to upload the Firmware.
Still unable to communicate to my Science Journal app though.
Some new problem appeared which I'm investigating right now.

Excellent work finding a solution to the PlatformIO problem! Thanks for taking the time to post an update with your solution.

Regards,
Per

1 Like

Hello @ptillisch

Where can I find info about that line you use to have arduino101load work correctly?

I dug around a bit but the only information I have been able to retrieve was analyzing the actual main file.
And its not the way I want to suppose.

I mean, all those options/flags: [-dfu], [-bin], [-port], [-ble_fw_str] ecc...

Where can I find info about them all relatively to arduino101load tool?

Thanks

You already saw it in the source code, but you can also get the information about the flags by running the executable with the --help flag:

$ pwd
/c/Users/per/AppData/Local/Arduino15.full/packages/Intel/tools/arduino101load/2.3.0

$ ./arduino101load --help
Usage of C:\Users\per\AppData\Local\Arduino15.full\packages\Intel\tools\arduino101load\2.3.0\arduino101load.exe:
  -bin string
        Location of sketch binary
  -ble_fw_pos int
        BLE FW ID offset
  -ble_fw_str string
        BLE FW ID string
  -c    Copy bin_file to bin_save
  -core string
        Firmware location
  -dfu string
        Location of dfu-util binaries
  -f    Force firmware update
  -from string
        Original file location
  -port string
        Upload serial port
  -q    Show quiet logging (default true)
  -rtos_fw_pos int
        RTOS FW ID offset
  -rtos_fw_str string
        RTOS FW ID string
  -to string
        Save file location
  -v    Show verbose logging

Thank you very much for the patience.
As you said, I was already on that level of information by the main.go source file, if that was what you intended.

So my question was more about how can I know that [-bin] is that path or that [ble_fw_str] is actual that string and so on.
Some sort of documentation about arduino101load so to say.

Anyway, probably Im going too far with too little knowledge about the matter as a whole.

I don't know much about arduino101load. The command I shared previously is just the command Arduino IDE automatically generates.

I do know that arduino101load is basically just a wrapper around the dfu-util tool:

While arduino101load is very specific to the Arduino 101 board/Intel Curie module, dfu-util is a more general purpose tool with wider usage. So if you can track a flag though the arduino101load source code to where it translates to a dfu-util command, then research that usage of dfu-util, you are more likely to find information than searching for arduino101load-specific information.

Thank you very much @ptillisch

You are welcome. I wish I had more knowledge to share on these subjects.

Just a little bump to say Im trying to get help even on these two external posts.

Dfu-util location missing trying to upload Science Journal firmware on Arduino101 - PlatformIO IDE - PlatformIO Community

Science Journal on Arduino101. It compiles and uploads but it does not work - PlatformIO IDE - PlatformIO Community

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.