CW1200: Your firmware is outdated - latest is 1.30. Suggested to update firmware, as you may experience errors

After updating the Chip Whisperer firmware, I’m still not able to run the basic chipwhisperer commands. I am currently using the CW1200.

import chipwhisperer as cw
scope = cw.scope()
scope.upgrade_firmware()

Here’s what I have done

  • I have installed the Chip Whisperer client on Windows.
  • Used Zadig to update the WinUSB driver
  • Followed the instructions for updating firmware and search through the forum for similar issues. If anyone has any ideas, your help would be much appreciated!


Hi,

You’ll have to use the older firmware update method: API — ChipWhisperer 5.6.1 documentation

That update method will be available in the next ChipWhisperer release.

EDIT: You might want to run through chipwhisperer-jupyter/ChipWhisperer Updating.ipynb at master · newaetech/chipwhisperer-jupyter · GitHub and grab the latest commits, as there’s been a lot of changes since the last release. If you do that, you’ll be able to use the scope.upgrade_firmware() method.

Alex

@Alex_Dewar

Are there any work arounds to this. I’ve manually updated to ChipWhisperer 5.5.2 but the firmware issue still persists. I went through the updated commits you suggested chipwhisperer-jupyter/ChipWhisperer Updating.ipynb at master · newaetech/chipwhisperer-jupyter · GitHub but I am unable to call the scope.upgrade_firmware() method due to the issue mentioned above.

That cw.scope() call from your first post did work. You can see in the error message that scope.upgrade_firmware() is what failed, not the cw.scope() call. What’s the full stack trace of the second error you got?

Alex

@Alex_Dewar thanks I don’t know what is wrong with the installation build. Here is my stack trace, I tried troubleshooting the errors but still wasn’t able to get anything. Let me know if a solution comes to mind.

import chipwhisperer as cw
scope = cw.scope()
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-1-a074e77f8699> in <module>
      1 import chipwhisperer as cw
----> 2 scope = cw.scope()

c:\users\dolphin~1\chipwh~1\cw\home\portable\chipwhisperer\software\chipwhisperer\__init__.py in scope(scope_type, name, **kwargs)
    255 
    256     if scope_type is None:
--> 257         scope_type = get_cw_type(**kwargs)
    258     scope = scope_type()
    259     try:

c:\users\dolphin~1\chipwh~1\cw\home\portable\chipwhisperer\software\chipwhisperer\common\utils\util.py in get_cw_type(sn, idProduct, **kwargs)
    502         possible_ids = [0xace0, 0xace2, 0xace3, 0xace5]
    503 
--> 504     cwusb = NAEUSB_Backend()
    505     device = cwusb.find(serial_number=sn, idProduct=possible_ids)
    506     name = device.getProduct()

c:\users\dolpin~1\chipwh~1\cw\home\portable\chipwhisperer\software\chipwhisperer\hardware\naeusb\naeusb.py in __init__(self)
     89         import atexit
     90         self.usb_ctx = usb1.USBContext()
---> 91         self.usb_ctx.open()
     92         # atexit.register(self.usb_ctx.close)
     93         self.handle = None

~\WPy64-3771\python-3.7.7.amd64\lib\site-packages\libusb1-2.0.1-py3.7.egg\usb1\__init__.py in open(self)
   2173         assert self.__context_refcount == 0
   2174         assert not self.__context_p
-> 2175         loadLibrary()
   2176         self.__libusb_handle_events = libusb1.libusb_handle_events
   2177         mayRaiseUSBError(libusb1.libusb_init(byref(self.__context_p)))

~\WPy64-3771\python-3.7.7.amd64\lib\site-packages\libusb1-2.0.1-py3.7.egg\usb1\_libusb1.py in loadLibrary(libusb)
    208         with __load_lock:
    209             if not __loaded: # we were not loaded, check again under lock
--> 210                 __loadLibrary(libusb)
    211                 __loaded = True
    212                 return True

~\WPy64-3771\python-3.7.7.amd64\lib\site-packages\libusb1-2.0.1-py3.7.egg\usb1\_libusb1.py in __loadLibrary(libusb)
    217     # globals . Treat this namespace the same as the module's.
    218     if libusb is None:
--> 219         libusb = __getLibrary()
    220 
    221     _libusb_transfer_fields = [

~\WPy64-3771\python-3.7.7.amd64\lib\site-packages\libusb1-2.0.1-py3.7.egg\usb1\_libusb1.py in __getLibrary()
    156         filename = os.path.join(os.path.dirname(__file__), filename)
    157     try:
--> 158         return dll_loader(filename, use_errno=True, use_last_error=True)
    159     except OSError:
    160         libusb_path = None

~\WPy64-3771\python-3.7.7.amd64\lib\ctypes\__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
    362 
    363         if handle is None:
--> 364             self._handle = _dlopen(self._name, mode)
    365         else:
    366             self._handle = handle

OSError: [WinError 126] The specified module could not be found

Huh, I don’t think I’ve seen that error before - maybe something’s wrong with libusb? Try doing

%%bash
pip uninstall libusb1
pip install libusb1

In jupyter

Alex

Greetings,
I have the identical problem. After looking at this page, I tried @Alex_Dewar’s solution by using libusb codes. After that, I got these messages-please see photos attached. Please help me out in this regard.
Thank you,

Whoops, sorry, forgot pip asks for confirmation. Try doing pip uninstall -y libusb1 and pip install -y libusb1.

Alex

Hi @Alex_Dewar ,
After trying your idea, a connection problem occurred. Therefore, I ran Zadig.exe and successfully installed the usb driver. After that, the device manager showed the virtual box usb, which is my cw1200, in the Universal Serial Bus Devices part. However, I still get a connection error and cannot eliminate the screen on the capture tool that @fuzzingdolphin uploaded here. Please help me in this regard. Note that I installed the Blackhat 2021, which is chipwhisperer 5.6.0. Thanks in advance.