Cannot flash firmware w/ utility or terminal (Reach v2.3)

I have consulted the documentation and done a forum search, but am still having issues. (see title)

Attempting to flash Reach firmware v2.3 via Intel Edison Board Configuration Tool and flash script over cmd, but no success.

OS : Windows 7 Enterprise SP1 HAL v6.1.7601.17514 64-bit
model : HP ZBook 15 G2 x64
CPU : Intel Core i5-4340M dual-core @ 2.90 GHz
RAM : 4 GB


Method 1 : config utility

  1. run utility, install drivers
  2. flash firmware using the downloaded v2.3 json -> waits for hardware
  3. disconnect/reconnect Reach module from USB port (no other devices connected to Reach)
  4. LED flashes : white -> blue -> magenta -> white -> red -> yellow -> blinks yellow
  5. according to the documentation it successfully boots and looks for known networks
  6. after several minutes, utility times out and fails to flash the firmware
  7. try again but choose the “download & use latest image” option instead of selecting existing v2.3 json
  8. same wait screen, disconnect/reconnect, same fail screen
  9. re-ran utility and repaired the drivers
  10. tried steps 2 & 7 again and same fail screen for both

Method 2 : script via cmd

  1. unplugged Reach, uninstalled/reinstalled the drivers
  2. ran elevated cmd -> cd to extracted ReachImage_v2.3 dir -> ran flashall.bat
  3. plugged in Reach -> error from cmd
  4. no dfu-util.exe supplied in the stock ReachImage_v2.3.zip -> followed instructions from Intel
  5. downloaded specified Yocto image and put the exe & dll in the extracted folder (steps 1-3 on the linked page)
  6. tried flashall.bat again
  7. disconnect/reconnect Reach, after a few moments -> flashing yellow
  8. script timeout
  9. tried the --recovery option like it suggested -> requests install of xfstk tools
  10. downloaded from sourceforge, but seems to compatible only with Linux, not Windows
  11. no access to Linux

Any help would be greatly appreciated. Thanks.

1 Like

I had the same issue. Use Method 2 a couple of times until it works

Hi!

I know this is a little confusing. Everything went okay the first time(until step 6). This tool is Intel’s and will not show you valid confirmation of the process when using our image. You should just retry the first steps, wait for Reach to reboot and wait for LED to start “breathing” white. After this, reboot it and you are ready to go.

Thanks for your reply.

So you’re saying on [Method 1 Step 4] to disconnect Reach the second time I get white? (right after magenta which is the booting sequence)

I’ll do that, then reconnect it (to reboot it as you said), and it still goes back to the blinking yellow and neither Intel’s tool nor the script recognize the device. (i.e. they both timeout just as they did before)

Also, I’m not sure what you mean specifically by “ready to go”. Am I looking for a solid green LED?

You’ve waited until the flashing process finishes, with the progress bar and all, correct? After this Reach reboots and should finish with a breathing white LED. If this happens, everything went well and you should pay no mind to what the Intel’s tool is telling you. We’ve removed support for interaction with this tool as it took up a valuable system resource.

After flashing and a reboot, it will go into normal operation, so this looks completely fine.[quote=“JDAB, post:4, topic:6394”]
Also, I’m not sure what you mean specifically by “ready to go”. Am I looking for a solid green LED?
[/quote]

I meant that you can start using Reach as intended, by connecting to its hotspot and going through the first setup process. The solid green light shows the system has been set up and the app has been launched.

[quote="efedorov, post:5, topic:6394]
You’ve waited until the flashing process finishes, with the progress bar and all, correct? After this Reach reboots and should finish with a breathing white LED. If this happens, everything went well and you should pay no mind to what the Intel’s tool is telling you. We’ve removed support for interaction with this tool as it took up a valuable system resource.[/quote]
Well that’s the problem. I created this thread because I cannot flash the unit. I get no progress bar; both the Intel tool and the terminal method time out before recognizing the unit. (see screenshots and comments in first post)

Also, I’m not in love with the Intel tool and would be happy to try other methods, e.g. command prompt. However, as shown above, neither method works for me since they both time out before recognizing that the unit is connected in the first place.

Thanks in advance for your continued support.

Seems I have misunderstood you, I see now. The flashall script seems to work as expected but for some reason not detect Reach during early boot. Try changing the USB cable you are using. Also, try switching ports on your PC. Sometimes, plugging Reach into USB 2.0 port instead of 3.0(usually marked blue) helps.

Also, are you running flashall.bat from inside the unpacked image dir?

Hi,

my Reach 2.3 directory looks like this:

In this directory I used your method 2, point 2 and 3 but with success.
Once I had serious problems and I got Reach to work again by flashing it with Reach 1.2 first and then with 2.3.

disclaimer : I will now proceed only with the script (Method 2) and abandon the Intel tool (Method 1) since it seems it’s not fully compatible with the Emlid Reach.

Yes, I have tried 3 different USB cables each across 3 different USB ports on my computer (so 9 tests). None of the ports have the blue strips (so it seems they’re 2.0), and all 9 tests timed out.

Yes, I am running the script within the image dir, see Post#1 Method 2 Steps 3) & 6). As you see on Step 3), there is no dfu-util.exe supplied with the stock ReachImage_v2.3.zip, so per instructions linked to on Step 4), I used the Yocto image on Step 6) and copied the dfu-util.exe and the dll into the Yocto image dir, but it still times out on Step 8).

I’m now trying the stock ReachImage_v2.3.zip as before but with the dfu-util.exe & libusb-1.0.dll copied into the image dir – see Step 5). They still time out for all 9 tests.

Yes, my image dir contains the exact same set of files.

Also, when I downloaded the dfu-util.exe, I used the dfu-util-0.9-win64.zip. Should I be using an older one?

I’ll try to flash 1.2 then 2.3 like you suggested.

Also, I have tried on a separate computer, after installing the drivers.

It has failed with the same timeout error on all 3 USB ports on that laptop.

Sadly, I am getting the same result with v1.2.

My procedure is the following.

  1. Reach unplugged
  2. run flashall.bat from elevated cmd
  3. at prompt, plug in Reach
  4. LED goes through same [white -> blue -> magenta -> white -> red -> yellow -> blinks yellow] process
  5. script timeout

Could there be a problem with these targets/addresses in the script?

Different to yor way I always started flashall.bat with the Reach plugged in, at the prompt I unplugged Reach and connected it again after some seconds.
I did this some month ago and don’t recall the LED behaviour and details, but you should get some lines with ‘=>’ telling some actions, the last stuff takes some time, you are asked to wait for something to happen (which never happened in my case) so after 2 minutes I simply unplugged the Reach and plugged it in again and it worked.
I know I did the 1.2 flash with the Intel tool and using the flashall.bat and it worked 90% of the time for me. Flashing 2.3 only worked for me using flashall.bat, but later TB_RTK wrote : https://community.emlid.com/t/unable-to-reflash/5789/6?u=alujoe so maybe it would have worked with the Intel tool as well.

Do you have the problem with one Reach (maybe broken) or with two units ?

Your computer does not detect Reach at all. We had this kind of problems with Win 7 in the past, but the terminal method always worked.

One note. Intel’s tool should have installed everything you need, including dfu-util. I find it weird that you had to download something else.
I have a couple more ideas on how to fix this. First is less likely to help, but you should try it as well.

  1. When you flashed with the Intel’s tool, at the step of choosing path to the image, did you choose path to .json or to .zip? Could you try .zip? This is not exactly related, but still might be important.
  2. You mentioned you have no access to a Linux PC. Maybe a Win 10 PC? What about a mac?
  3. Try this new flashall.bat I have attached.
    flashall.zip (4.3 KB)

Well Intel’s tool doesn’t download the v2.3 Reach image; the documentation says to download that separately. And ReachImage_v2.3.zip doesn’t include dfu-util.exe nor libusb-1.0.dll, which are both needed for the script method.

Sure, I was choosing the *.json before. I just tried the *.zip, initially leaving the Reach unplugged then plugging it in at the screen for Method 1 Step 2), then after several minutes (seemed longer than before), got the same failure screen as on Method 1 Step 6).

Yesterday I spent a good amount of time downloading and installing Linux (Ubuntu 16) on another drive. Could you provide some instructions for Linux? I do have a personal tablet with Win10 on it but I definitely have no Mac at all. I suspect success rate will be higher with Linux than with either of those 2 OS’s anyway.

Same timeout error as always. I have renamed the old flashall.bat and flashall.sh with a *.bak extension so the script doesn’t try to use them.

Also, I don’t know if this matters but the HP laptop is domain-joined (work) and the Fujitsu is on its own workgroup (personal), and I’ve been connecting the Reach to the built-in USB ports on the back of the laptops. The script method has been failing on both.

Tried that too and same timeout error.

Tried v1.2 with the Intel tool and same timeout screen as before.

  • plugged in -> repair drivers -> unplug -> plug in at “connect usb and power cables” -> timeout failure
  • repair drivers unplugged -> plug in at “connect usb and power cables” -> timeout failure

My second Reach works maybe a little better. Let’s call this second one Reach01 and the one I started the thread about we’ll call Reach02 (since that’s what they’re named). After connecting Reach01, it goes through the same LED sequence, but after [flashing yellow] it goes to [flashing between magenta & green]. According to the doc it seems it can’t make up its mind between booting and creating a hotspot. Reach01 broadcasts an SSID (Reach02 never gets to that point) and I can connect to it, but I cannot reach http://192.168.42.1.

When I attempt to flash v2.3 to Reach01 (this second Reach) using the script method, sadly I get the same timeout error. And it maintains the [flashing between magenta & green] on the LED.

Also, I’ve tried the documentation for Linux and sadly still get the same error.

The first time I ran flashall I got a similar error about not having dfu-util, so I followed the Intel instructions for getting that installed. Below is my process.

Method 3 : terminal via Linux

  1. Reach unplugged
  2. open ReachImage_v2.3 image dir in terminal
  3. sudo ./flashall.sh
  4. at prompt, plug in Reach
  5. same timeout error as in Windows

I got it working! After trying 3 USB cables, 2 computers, 6 USB ports, and 3 operating systems, it turns out that I didn’t try enough USB cables… I found a 4th one in my supplies which had “Pisen” branding on it - tried it and it worked instantly. I guess the Reach is very particular on which USB cable you use. After this I did notice the soft blinking “breathing” white LED that you originally mentioned efedorov, which looked very different from any of the other LED patterns.

Pisen is the brand of cable my reach kit came with, and in my opinion is very high quality.
I’ve been having similar trouble with a single one of my reach’s, I’ll give this a go and report back in a bit.

Update: Awesome! Ran the CLI, downloaded the most recent reach firmware, intels drivers, and dfu_util.exe and dll as specified, and it is flashing first try. Thanks!

1 Like