msg = bytearray(*16) #simpleserial uses bytearrays
(ChipWhisperer Target ERROR|File SimpleSerial.py:302) Target did not ack
Warning Traceback (most recent call last)
----> 1 print(target.simpleserial_read(‘r’, 16))
c:\users\15593\chipwhisperer5_64\cw\home\portable\chipwhisperer\software\chipwhisperer\capture\targets\SimpleSerial.py in simpleserial_read(self, cmd, pay_len, end, timeout, ack)
414 if ack:
415 if self.simpleserial_wait_ack(timeout) is None:
→ 416 raise Warning(“Device failed to ack”)
418 return payload
Warning: Device failed to ack
Yes I am facing the same issue too.
Let me know if solution is available.
What firmware is running on the XMEGA, and how was it compiled?
I have attached the snip of the error block that’s geting generated.
RIght, but which firmware are you running on the xmega? Are you running one of our Jupyter notebooks?
Also, can you provide the output of
Yes im running on the Jupyter notebooks > Connecting to hardware Chipwhisperer Lite
And the output snaps of print(scope) I have attached with this messade
Did you program the target? In the “Building and Uploading Firmware” section, you need to uncomment the appropriate
cw.program_target() line (and replace
path/to/firmware.hex with the actual .hex file).
If you did, were there any warnings or errors in that step?
I need help finding the path to hex file being created in previous step,
I’m getting this error, suspecting due to incorrect path.
The answer is right above; you ran:
make PLATFORM= CRYPTO_TARGET=NONE
and so that’s where the hex file will be found:
thank you jpthibault
I am a beginner and I bought a chipwhisker lite 2-part. I want to use chipWhisper for composite domain against DPA, and I want to change the implementation of sbox by changing the aes. c file in chipwhisperer\hardware\victims\firmware\crypto\tiny-AES128-C, and then proceed with CPA. Is it feasible？
Absolutely! We provide example firmware to help people get started, but we definitely want our users to use ChipWhisperer with their own implementations!
BTW in case you haven’t noticed, there are already a few third-party masked AES implementation here: https://github.com/newaetech/chipwhisperer/tree/develop/hardware/victims/firmware/crypto
I am getting the following error upon giving the path.
I am learning and kind of new to this type of interface, so kindly excuse me,
And It would be really helpful if there would be a youtube playlist made available for setting up using recent architecture and GUI rather than 8 years old one.
Ah sorry I assumed your platform was CW308_STM32F3, since you set the programmer to
Whatever you set PLATFORM to in the make command becomes part of the output file name. So if you did
make PLATFORM=CWLITEXMEGA (...), then you should find:
If you used
CWLITEARM, then use that.
We did youtube videos for the old GUI because with a GUI, some things are easier to show in a video. Now that we have the Jupyter-based approach, all the information is contained in the notebooks.
Hi Thanks was able to load the firmware
But while running serial communication part in Jupyter notebook came across this and last code block was not printing anything even after running for many times.
hi Samarth you can try
print(target.simpleserial_wait_ack()) #should return 0
thank you jpthibault . I would like to ask how to open this software. I think someone online is using this software. Can you explain the specific usage steps, please
The main difficulty is that currently there is no way to download and open the software
You’ll find all our releases on the github project page: Releases · newaetech/chipwhisperer · GitHub
The GUI went away after version 4. I really don’t recommend that you use the old GUI versions. We don’t support it, and we won’t be making any updates or fixes to it. Learning Jupyter is well worth the effort.
But my question was regarding target.write(‘p’+‘0x01’+‘\n’)
Even after clicking on print(recv_msg) multiple times there is not any output seen.
What must be the expected output.
The message you are sending is too short, that is why the target is not responding to it.
Simpleserial commands have a fixed payload length; in the case of the “p” and “k” commands in this firmware, it’s 16 bytes (if you want to understand how this works under the hood, you can see this here).
So, if you were to send:
target.write('p' + "ff"*16 + "\n")
Then you should get back:
recv_msg += target.read()