QTADC error

Hi Colin,

We are facing a small hiccup in our initial tryout with running Chipwhisperer. After following the tutorials to an approximation, we are stuck and are unable to get rid of this issue. Could you please suggest us a correct way around.
We are trying to trace power signals from Sakura-g board while running AES code from the Chipwhisperer tutorials, using Picoscope 6404D. The comment displaying in python script, while running CWCapture is “AttributeError: 'PicoscopeInterface object has no attribute ‘qtadc’”, and if we ignore this and run the multiple trace, then it displays “AttributeError: ‘ChipewhispererComm’ has no attribute ‘oa’”.
Kidly inform us if we can not trace power signals without openadc hardware, with the specific details, mentioned in the tutorial, as well as shown in one of your video tutorials we checked.

Please kindly route us through the correct channel.



Sorry on the delay here - over the holidays we were shut down, just getting back to answering questions now! To help you out…

I think the current code assumes you are using the OpenADC attachment. Even if not, you’ll need to program the LX9 of the SAKURA-G with the OpenADC firmware, since it uses a different interface than the normal SAKURA-G LX9 code. This also means you’ll need to update the LX75, as the ChipWhisperer SAKURA-G code uses a different bus-width than the newer SAKURA-G code (I based my ChipWhisperer LX9 code on an older version of the SAKURA-G reference platform).

This might need an update on my part to use the PicoScope with the SAKURA-G (instead of the missing OpenADC module). But it is definetly possible to use an external scope with the SAKURA-G. Let me know first if you’ve programmed the LX9 with the ChipWhisperer FPGA bitstream, and will investigate more here.


Hi Colin,

Thank You for replying. We have programmed the LX9 in SAKURA-G with the ChipWhisperer FPGA bitstream, as well as LX75 as mentioned following the tutorials, and updated them referring to other topics in this forum.

Moreover we have been following topics related to OpenADC, but could not find any better solution towards solving our issue. We hope, as you mentioned, there is a way for using external scope with the SAKURA-G.



Am looking into this now - we’ve got holidays around now (still) which are slowing things down, but will try to push a fix to GIT. I did confirm right now the code doesn’t let you use an external scope, but it’s something I can fix so you can get this working!


I just pushed a fix to GIT now. If using ChipWhisperer Instant just do a “git pull” to get the fixes.

You should be able to select a new SAKURA-G connection mode called “CW Bitstream, no OpenADC”. As shown below be sure to select the module in (1), press the (Enumerate…) button at (2), and check some sort of serial number appears at (3). You can now connect to the target device and press “Capture 1”, you should see text in/text out in the monitor.


Then select your external scope (picoscope etc) as required.

I think the previous version WOULD work with the original bitstream (i.e. what came in the ‘quickstart’ guide). I haven’t checked that in a little bit though.

Let me know if you have trouble, this was just a quick update!

Dear Colin,

Thanks for the GIT update and replying about it immediately. We made a few trials with the updated SAKURAG.py and OpenADC.py files from the GIT base, and were able to get and set the 'Connection via CW Bitstream, no OpenADC, but the core status remained the same.

We are still unable to trace power signals from Sakura-g board while running AES code from the Chipwhisperer tutorials, using Picoscope 6404D. The comment shows the same displaying in python script, while running CWCapture i.e., “AttributeError: 'PicoscopeInterface object has no attribute ‘qtadc’”, and if we ignore this and run the multiple trace, then it displays “AttributeError: ‘ChipewhispererComm’ has no attribute ‘oa’”.

We may be having some lack of updated files, so we will be trying to reset the whole python and Chipwhisperer installations redone and check for any improvements in the trials. Meanwhile please inform us if you find any other solution to this issue.


Hmm - I’ll check from GIT here. Sometimes changes don’t fully make it upstream occasionally, so it might be a case where it works for me but errors out on other systems. The
“no attribute ‘qtadc’” for the picoscope seems to be a core error so I might not have updated something completely…



… there was indeed such an error, I think there is a fix uploaded now. I haven’t had a chance to test this yet so will confirm that fixed the issue, but if you’ve got a moment can try updating from GIT to confirm if that worked.

Dear Colin,

Thank you for the update on GIT. We have observed few changes in the output shown in the python scripts, but none helping us neither to collect the power traces we need nor to save our work in any template.

The update has been helpful for removing the “no attribute ‘qtadc’” error in the python script for picoscope, but eventually python script is repeating the error display.

On selecting the Picoscope, SAKURA G and ChipWhisperer/Native as the Scope, Target Modules and Trace Format respectively, PS6000 as Scope Type and selecting ‘CW Bitstream, no OpenADC’ connection to get FTZ6KRS6A as the enumerated device in the ChipWhisperer Capture V2, we come across a new FTDI Port type exceptions IOError, that displays ‘failed to find OpenADC’. And the earlier mentioned errors repeats their course.

We are trying to solve it on our own, but meanwhile if you have some suggestions, please kindly share it with us. It is helping us a lot.


Is there a way to deal with the qtadc error when using the ChipWhispererLite & Picoscope 6400?

I’m getting this error:

File "/home/richard/Documents/ChipWhisperer/chipwhisperer-git/software/chipwhisperer/capture/ui/CWCaptureGUI.py", line 157, in doConDisTarget if self.api.connectTarget(): File "/home/richard/Documents/ChipWhisperer/chipwhisperer-git/software/chipwhisperer/common/api/CWCoreAPI.py", line 260, in connectTarget self.getTarget().con(scope=self.getScope()) File "/home/richard/Documents/ChipWhisperer/chipwhisperer-git/software/chipwhisperer/capture/targets/_base.py", line 66, in con self._con(scope) File "/home/richard/Documents/ChipWhisperer/chipwhisperer-git/software/chipwhisperer/capture/targets/SimpleSerial.py", line 107, in _con self.ser.con(scope) File "/home/richard/Documents/ChipWhisperer/chipwhisperer-git/software/chipwhisperer/capture/targets/simpleserial_readers/cwlite.py", line 84, in con self.cwlite_usart = CWL_USART(scope.qtadc.ser) AttributeError: 'PicoScopeInterface' object has no attribute 'qtadc'

Edit: I’m using the latest code from git.