Failed to Update Firmware of CW1200, ChipWhisperer-Pro

Hello.

I posted this topic since I recently got into BIG troubles.

While I’m using CW1200, I received the message saying that the firmware need to be updated.
I followed the instructions posted on wiki page(http://wiki.newae.com/CW1200_ChipWhisperer-Pro), but CW1200 doesn’t work any longer after clicking the Enable Bootloader Button.
I tried to manual update using BOSSA, as described as the wiki page(http://wiki.newae.com/Manual_SAM3U_Firmware_Update), but I noticed that the instructions were for CW1173, not for CW1200.
Now, I’m in a big trouble. Could you tell me how to get the firmware restored?

Thank you for your time and consideration.
Best regards, Park.

Hello,

Not a problem - the CW1200 firmware update isn’t used normally as we haven’t needed an update of the SAM3U USB firmware… the FPGA automatically is reloaded with any changes, and that tends to change more.

But the attached should work with the BOSSA instructions.

CW1200_SAM3UFW.zip (53.3 KB)

We’re working on updating the integrated firmware loader as well to make that cleaner should this happen again.

-Colin

Hello.

You couldn’t imagine that I was really happy to be able to get your help!

After working with the attached, CW1200 began to work without any problem, and I could finally take a breath.
I didn’t know before that the new website of the documentation for the ChipWhisperer you told via email exists.
https://chipwhisperer.readthedocs.io/en/latest/

Again, I’d really appreciate your kind reply on this matter.

Best regards, Park.

Hi Colin,

I encounter the same trouble but I did not succeed to solve it.
CW5 invited me to upgrade the SAM3U of my “old” CW1200 so I followed this link
https://chipwhisperer.readthedocs.io/en/latest/api.html#firmware-update

But at step 5, the instruction is for CWLite not for Pro

programmer.program(<port>, hardware_type='cwlite')

and I did it without taking care, then when I replugged my CWPro, she were recognised as a buggy CWLite.

I tried to manually erase the SAM3U as explained here
https://wiki.newae.com/Manual_SAM3U_Firmware_Update
but now, it can not be mounted as a serial USB (see below).

Do I have any rescue solution now?

Cheers
Guenael

PS: I have the following messages on my MacBookPro :

MBPro:~ Guena$ ioreg -p IOUSB | grep ChipWhisperer
| ±o ChipWhisperer Lite@14100000 <class AppleUSBDevice, id 0x10001e9be, registered, matched, active, busy 0 (4 ms), retain 25>

and in python

>>> import chipwhisperer as cw
>>> scope = cw.scope(scope_type=cw.scopes.OpenADC)
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x01=1 Sent data: fe Read data: ff
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x04=4 Sent data: ac Read data: ff
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x04=4 Sent data: ac Read data: ff
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x04=4 Sent data: ac Read data: ff
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x04=4 Sent data: ac Read data: ff
ERROR:root:For address 0x10=16 Sent data: d2ffffff Read data: ffffffff
ERROR:root:For address 0x04=4 Sent data: ac Read data: ff
Traceback (most recent call last):
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/capture/scopes/openadc_interface/naeusbchip.py", line 105, in con
self.scope.con(self.ser)
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/capture/scopes/_qt.py", line 148, in con
raise IOError("Opened port %s but failed to find OpenADC" % portname)
OSError: Opened port UNKNOWN but failed to find OpenADC
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/__init__.py", line 211, in scope
scope.con(sn)
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/capture/scopes/base.py", line 58, in con
if self._con(sn):
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/capture/scopes/OpenADC.py", line 203, in _con
self.scopetype.con(sn)
File "/Users/Guena/Repositories/chipwhisperer/software/chipwhisperer/capture/scopes/openadc_interface/naeusbchip.py", line 109, in con
raise IOError("OpenADC: " + (str(exctype) + str(value)))
OSError: OpenADC: &lt;class 'OSError'&gt;Opened port UNKNOWN but failed to find OpenADC

Hi,
Can you try again but this time specify the firmware path, using the fimware image extracted from the.zip file that Colin provided above:
programmer.program(<port>, fw_path=<bin file>)

Jean-Pierre

Hi,

it would be great if I could use the programmer but I can not see the CW as a serial tty, thus I do not have any port to provide to this instruction.

Guena

Ah yes, sorry I missed this…
When you said earlier that you tried to follow the manual firmware update (https://wiki.newae.com/Manual_SAM3U_Firmware_Update), did you short your Pro’s “erase” jumper? You’ll have to open the case but it should work. It should bring it back to bootloader mode. Follow exactly all the manual update instructions (but use the right FW image this time :wink: )

Jean-Pierre

Does it show up at all in USB mode as any sort of device (either serial OR as an incorrect CW-Lite)? If either of those show up can likely fix it externally.

If no USB activity at all, might need to do the manual recovery.

For opening the enclosure - basically you remove the 4 screws on each end. The end plates then should pop off.

The front panel (with LCD) and inner board all slide together as one unit, as there is a small flat-flex cable connecting them. Let me know if doesn’t make sense as can make a short video.

Will make a note to change the default to try and validate the FW Image or at least confirm with user! As understand how easily this could happen.

Hi,

I encountered the exactly same situation as Guena did. I opened the case and short the erase jumpers but when reconnect it to my computer it still shows up as a in correct CW-lite. Is there anything I could do to solve it?

Thanks a lot!!

Hi,

I think I have solved this by directly connecting pin 137(erase pin) of Atmel ATSAM3U2E to
a Vcc pin. This brough it back to bootloader mode! Hope this could help someone who are in trouble.
Thanks!

1 Like

Hi Veronica,

Just seeing response now - glad you were able to sort it out! Will add that to some of the hardware note as well in case it comes up again… I’ll check the hardware files too to ensure the other pin is connected correctly, I recall there being a problem with another board (not CW-Lite/CW-Pro) where the ‘VCC’ side wasn’t connected on the erase jumper, maybe the CW1200 has had that bug as well. If so your fix is the work-around needed!

Thanks,

-Colin

Hi,

I measured a bit around and found something strange, however I was able to find 3v3 as shown in the picture below (note that the pin noted as vcc did not have 3v3).
I shorted the pin closest to the SAM3U in the erase jumper to the pin mentioned earlier.

Also, please document in the latest documentation that there exists a new FW for CW1200.

Hello,
I prepared a guide about how you can reboot the firmware manually. If jupyter firmware methods do not work to resolve your problem, this method works. I prepared this guide for the beginners, and explained step by step-please see attached. Thanks!
Manually_reboot_cw1200_mehmet_20.zip (551.5 KB)