I have been trying to setup the notduino board with the CW_lite capture board but I keep running into issues
Here is the code:
%run “…/…/…/jupyter/Setup_Scripts/Setup_Notduino.ipynb”
import chipwhisperer as cw
avr = scope.scopetype.dev.avr
avr.find() # [Errno 110] Operation timed out
print(avr.readSignature())
print(f"{avr.readFuse('low')}-{avr.readFuse('high')}-{avr.readFuse('extended')}")
Here is the error output:
WARNING:ChipWhisperer NAEUSB:Your firmware is outdated - latest is 0.30. Suggested to update firmware, as you may experience errors
See https://chipwhisperer.readthedocs.io/en/latest/api.html#firmware-update
---------------------------------------------------------------------------
USBTimeoutError Traceback (most recent call last)
<ipython-input-4-5d2aa5b40c7c> in <module>
8 prog.scope = scope
9 prog.open()
---> 10 prog.find()
11 prog.writeFuse("low", 0b11100000)
~/work/projects/chipwhisperer/software/chipwhisperer/capture/api/programmers.py in func_wrapper(self, *args, **kwargs)
69 self.scope.io.nrst = 'high_z'
70 try:
---> 71 val = func(self, *args, **kwargs)
72 finally:
73 target_logger.debug('Restoring pdic, pdid, and nrst pin configuration')
~/work/projects/chipwhisperer/software/chipwhisperer/capture/api/programmers.py in find(self)
151 def find(self):
152 avr = self.scope.scopetype.dev.avr
--> 153 sig, chip = avr.find(self.slow_clock)
154 if chip is None:
155 self.log("AVR: Detected unknown device with signature=%2x %2x %2x" % (sig[0], sig[1], sig[2]))
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/programmer_avr.py in find(self, slow_delay)
234
235 # Read signature
--> 236 self.enableISP(True, slow_delay)
237 sig = self.readSignature()
238
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/programmer_avr.py in enableISP(self, status, slow_clock)
375 self._chip.cmdexedelay = 25
376 self._avrDoWrite(self.ISP_CMD_ENTER_PROGMODE_ISP, [self._chip.timeout, self._chip.stabdelay, self._chip.cmdexedelay, self._chip.synchloops,
--> 377 self._chip.bytedelay, self._chip.pollvalue, self._chip.pollindex, 0xAC, 0x53, 0, 0])
378 else:
379 try:
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/programmer_avr.py in _avrDoWrite(self, cmd, data, checkStatus)
336 # Check status
337 if checkStatus:
--> 338 status = self._avrDoRead(cmd=0x0020, dlen=2)
339 if status[1] != 0x00:
340 status_txt = "0x%02x"%status[1]
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/programmer_avr.py in _avrDoRead(self, cmd, dlen)
349 """
350 # windex selects interface, set to 0
--> 351 return self._usb.readCtrl(self.CMD_AVR_PROGRAM, cmd, dlen)
352
353 # Low-level functions
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py in readCtrl(self, cmd, value, dlen)
794 """
795 # Vendor-specific, IN, interface control transfer
--> 796 return self.usbseralizer.readCtrl(cmd, value, dlen)
797
798 def cmdReadMem(self, addr, dlen):
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py in readCtrl(self, cmd, value, dlen)
189 cmdpacket = [0xC1, cmd, value, 0, dlen]
190 cmdpacket = self.make_cmd(self.READ_CTRL, cmdpacket)
--> 191 return self.process_rx(self.txrx(tx=cmdpacket))
192
193
~/work/projects/chipwhisperer/software/chipwhisperer/hardware/naeusb/naeusb.py in txrx(self, tx)
297
298 if cmd == self.READ_CTRL:
--> 299 response = self.usbdev().ctrl_transfer(payload[0], payload[1], payload[2], payload[3], payload[4], timeout=self._timeout)
300 naeusb_logger.debug("READ_CTRL: bmRequestType: {:02X}, \
301 bRequest: {:02X}, wValue: {:04X}, wIndex: {:04X}, data_len: {:04X}, response: {}".format(payload[0], payload[1], \
~/.pyenv/versions/3.7.7/envs/cw/lib/python3.7/site-packages/pyusb-1.1.1-py3.7.egg/usb/core.py in ctrl_transfer(self, bmRequestType, bRequest, wValue, wIndex, data_or_wLength, timeout)
1077 wIndex,
1078 buff,
-> 1079 self.__get_timeout(timeout))
1080
1081 if isinstance(data_or_wLength, array.array) \
~/.pyenv/versions/3.7.7/envs/cw/lib/python3.7/site-packages/pyusb-1.1.1-py3.7.egg/usb/backend/libusb1.py in ctrl_transfer(self, dev_handle, bmRequestType, bRequest, wValue, wIndex, data, timeout)
899 cast(addr, POINTER(c_ubyte)),
900 length,
--> 901 timeout))
902
903 return ret
~/.pyenv/versions/3.7.7/envs/cw/lib/python3.7/site-packages/pyusb-1.1.1-py3.7.egg/usb/backend/libusb1.py in _check(ret)
600 raise NotImplementedError(_strerror(ret))
601 elif ret == LIBUSB_ERROR_TIMEOUT:
--> 602 raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
603 else:
604 raise USBError(_strerror(ret), ret, _libusb_errno[ret])
USBTimeoutError: [Errno 110] Operation timed out
I tried the code recommended in Troubleshooting:
import chipwhisperer as cw
scope = cw.scope()
scope.default_setup()
scope.io.tio1 = "serial_tx"
scope.io.tio2 = "serial_rx"
prog = cw.programmers.AVRProgrammer(slow_clock=True)
prog.scope = scope
prog.open()
prog.find()
prog.writeFuse("low", 0b11100000)
However, I end up with the same error message.
Thanks.