Firmware update failed with V0.5.0

Hi Matt,
I installed the new UI software V0.5.0 on my Windows 7 Pro x64 SP1 system, plugged in my Joulescope and started the UI. It then proceeded to start the firmware update, but appears to have done a USB disconnect, and then the re-connect failed with the driver issue I have reported previously. I then followed the procedure you recommended previously (your .inf file, which work previously) and it appears to have worked this time, since device manager does now show Joulescope as a listed device. Unfortunately the firmware update did not complete, and the screen shows it is stuck at 5%, and remains there indefinitely. Even though it said “do not unplug or turn off power”, after 10 minutes of being stuck at 5%, I didn’t really have any other option.

The green status light next to the USB connection is flashing. I looked in the directory for a log, but there is none. Restarting the UI gives the same result and so does disconnecting and re-connecting the USB cable. I also restarted my computer, with no difference in the above sad description.
Update_hangs

Oh. You need a new INF file for the bootloader! You can download the Bootloader INF from GitHub. As we found out last time, make sure your browser saves it as “joulescope_bootloader.inf” and not “joulescope_bootloader.inf.txt”. You should then be able to follow the instructions here, but this time for the Joulescope Bootloader.

Disconnect and reconnect your Joulescope, and all should be good. The Joulescope UI will then detect the bootloader and restart the firmware upgrade (even if you have exited the Joulescope UI).

Thanks for the stunningly fast response (6 minutes) to this issue.
I am glad to report that with the bootloader .inf file I was able to
restart the UI, and the firmware update proceeded with no more
issues. I was then able to do a fun demonstration to a potential
new customer.

Thanks

2 Likes

Great that you are up and running. Hope you win that new customer!

The demo was for a potential new Joulescope customer. :smile:

2 Likes

Hi Matt,

I just wanted to convey my firmware update experience (running Win7 Pro SP1). I did a download and run of the installer, and it started the firmware update process. About 9% in, it said update failed, and to unplug and reconnect. I was getting ready to do that, when I heard the USB chime and it said something to the effect of WinUSB being installed successfully (didn’t have much time to read it). It then proceeded with the firmware update and the progress bar reached 100%. It then just sat there at 100%. Behind the progress bar was the Joulescope multimeter display, and the status area below said something like “Firmware update 99.9% - program sensor”. I finally just decided to unplug and replug the Joulescope, hoping that the update really was complete. Everything came up fine, and I am now at 0.5.0. Just wanted you to be aware of my experience, as I’m not certain what the experience should have been :slight_smile:

Thanks @wired for writing up your experience. Win7 is weird since it may or may not support WinUSB and WCID Device driver installation. We also have reports of Win7 detecting Joulescope incorrectly.

When the Joulescope software performs a firmware update, the Joulescope restarts in bootloader mode, which is a different USB device from Window’s perspective. The second Bootloader INF may be needed, but it seems like Windows figured it out somewhere along the way. The Joulescope firmware update process is robust (it needs to be!), but seems like the UI got confused about whether your device was ready or not.

Based upon your description, I think that the firmware update completed successfully, but not as gracefully as it should have. If you ever have concerns about your device being partially upgraded (which I do not believe is the case here), you can:

  1. Disconnect your Joulescope
  2. Start the Joulescope UI
  3. Select File → Preferences → Device → firmware_update → always.
  4. Connect your Joulescope and wait for the firmware upgrade to complete
  5. Select File → Preferences → Device → firmware_update → auto.

On Windows 10 the above procedure does not work - Windows tells me the latest and greatest drivers are already installed when I try to install the INF files. The problem is the same, though. The green LED is blinking and Windows does not use the device.
Any recommendations?

Hi @lkm and welcome to the forum. Sorry to hear that your Joulescope and computer are not happy with the Joulescope firmware upgrade. With Windows 10, you do not need the INF files. Could you try plugging the USB cable directly into your computer? Ensure that no hubs, docks or other peripherals are between your Joulescope and your host computer.

Here are detailed steps for a Joulescope bootloader that does not upgrade under Win 10:

  1. Stop the Joulescope UI software
  2. With the Joulescope still connected, start device manager
  3. Right click on the “Joulescope Bootloader” and select “Uninstall Device”, click “uninstall”
  4. Verify that the Joulescope status LED is no longer flashing (it may keep flashing on a beta Joulescope…)
  5. Disconnect the Joulescope USB cable
  6. Wait 5 seconds
  7. Connect the Joulescope USB cable directly to a USB port on your computer (no hubs, docks or expanders).
  8. Verify that the Joulescope status LED flashes and that “Jouelscope Bootloader” is in device manager
  9. Start the Joulescope 0.5.0 software. Does the Joulescope firmware upgrade start?

If that doesn’t work, could you open PowerShell and type:

Get-PnpDevice -FriendlyName "Joulescope Bootloader" | Get-PnpDeviceProperty

I have attached what I see bootloader_powershell.txt (5.7 KB). Unfortunately, this does not display the DeviceGUID, which is how Joulescope actually finds the device through Windows. If your computer and Joulescope bootloader still have issue, please post what you see, and I will help you troubleshoot the issue.

Hi @mliberty,

thank you for your assistance :smile:
It turned out plugging the Joulescope into the computer directly (maybe also the Windows restart that happened in between?) was sufficient to resolve this issue.

Cheers!

1 Like

Note to those upgrading the UI using a VM. The Joulescope appears to disconnect from the USB momentarily. Unless your VM will automatically re-connect the USB, the upgrade will appear to fail. Reconnecting the USB port (Host -> Guest) will pick up the upgrade in progress and finish it.

I have an Ubuntu 16.04 Host, and a Ubuntu 18.04 Guest and was at first baffled by why the upgrade appeared to fail, until I realized the Joulescope was no longer attached. This may be similar to the issue Philip was having with his Win7 upgrade.

-tim-

@mliberty I will post my issue here since it is related to a firmware update failure. I just installed version 0.8.16. I plugged my device in through a USB 3.0 hub built into my monitor while the the Joulescope (JS) GUI was open. The firmware updated auto started. My monitor with the USB hub flickered causing the firmware update to hang at 34.1%. Eventually the JS GUI hung showing a loading icon when hovering the mouse over the firmware update progress dialog box.

I closed the JS GUI along with unplugging and plugging the JS in. The status light on the JS is solid green. The JS GUI is very unresponsive when trying to select any of the menus. Changing to different menus takes ~5 seconds. I think it is trying to connect with the HS. You can see what the Device menu looks like in the picture below. Maybe it is thinking about showing the actual JS device. The JS GUI is fine if I disconnect the JS.

image

I trying plugging directly into the computer USB ports, both USB 2.0 and 3.0. I even tried another computer running Windows 10 and the same 0.8.16 (first time installing and trying to use the JS). The exact same behavior occurs on both machines.

I have attached the result of your PowerShell commands.powershell_usb_info.txt (4.0 KB)

I have tried your 9 steps posted above for Windows 10 with no change to my issue. Device manager shows:

image

Is there a definition of the status light? I don’t see this in the user guide.

Is there some way to force a firmware update through PowerShell?

Hi @Jeremiah,

Sorry to hear that your Joulescope is having issues. First, I will address your question:

The Status light next to the USB host computer connector indicates:

  • off - not connected to a host computer, or not yet enumerated over USB
  • fast blinking - USB bootloader active
  • solid on - normal mode (at least for the host).

Given your description and the post, it looks like the bootloader is not active, but your Joulescopes sensor-side microcontroller firmware is corrupted. I am taking a look now to see how I can help you fix this.

Ok, I think that I have something that is not too bad. However, see the next post for a way to use just the Joulescope UI.

Here are the steps:

  1. Close the Joulescope UI and any other programs (such as custom scripts) that may be accessing your Joulescope.
  2. Install Python 3.7+ x64
  3. Download js110_1_1_0.img
  4. Unzip the .img file to a {path} of your choice. You should see a {path}\current_sense_1_1_0.fwimg file.
  5. Open a command prompt
  6. Type: pip3 install joulescope
    If this does not work, ensure that both your python install directory and python\Scripts are in your path.
  7. Unplug and replug your Joulescope, so it’s in a clean state.
  8. Type: joulescope program sensor "{path}\current_sense_1_1_0.fwimg"
    Be sure to replace {path} with your actual path. You should see the program run and display progress.
  9. Unplug and replug your Joulescope, so it’s in a clean state.
  10. Launch the Joulescope UI and see if it works!

The software does have protection against partial sensor microcontroller images, but obviously not enough. Hopefully, these steps get you back up and running. If not, please let me know what went wrong, and I’ll figure out how to fix it.

Oh man. I forgot about an alternative way to do this using just the Joulescope UI. Here are the steps.

  1. Unplug your Joulescope
  2. Start the Joulescope UI
  3. Open File → Preferences → Device
  4. Uncheck autostream
  5. Set firmware_update to always
  6. Connect your Joulescope

Once that works, you can reset the Device settings to their defaults.

This has fixed the issue! Thanks for your prompt help. I would recommend adding the status LED info to the user guide. Hopefully anyone else that has this issue will just search this forum. Maybe you can improve the checksum across the firmware memory range to force bootloader mode or w/e so you program auto fixes this issue. I wouldn’t expect this to be that common, but we can still see that it is possible.

1 Like

Hi @Jeremiah - Great to hear that you are back up and running! I will add the status LED info to the upcoming release of the Joulescope User’s Guide.

The host-side microcontroller has lots of safety and recovery for bad firmware updates. The sensor-side microcontroller, not nearly as much. We plan on making a few firmware updates in the coming months, so I’ll see if I can improve this…

1 Like