Running Multiple ChipWhisperers

Revision as of 07:31, 13 May 2019 by Adewar (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Revision as of 07:31, 13 May 2019 by Adewar (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The ChipWhisperer hardware/software supports running as many capture boards as you have USB ports. This page documents how to connect to multiple devices, which differs from the usual way of connecting to a ChipWhisperer (both inside and outside of the GUI).

Multiple Devices in CW5

import chipwhisperer as cw
scope1 = cw.scope(sn="<sn_of_device1>") #ie sn="44203120394d36433230312033323037"
scope2 = cw.scope(sn="<sn_of_device2>")

Note that calling cw.scope() without specifying a serial number with multiple ChipWhisperers connected will print the serial numbers of each connected ChipWhisperer.

Multiple Devices in the GUI

Note that using Capture requires one instance per device connected.

  1. Under Generic Settings, select "ChipWhisperer/OpenADC" as Scope Module and "Simple Serial" as Target Module: Mult Dev 1.png
  2. Hit the "Master: DIS" button. A warning window should pop up. Close this popup.
  3. Under the Scope Settings>NewAE USB (CWLite/CW1200)>Serial Number drop down menu, select the serial number of the device you want to use. Mult Dev 2.png
  4. Hit the "Master: DIS" button again.
  5. Continue as usual

Multiple Devices via Python

import chipwhisperer as cw
from chipwhisperer.capture.scopes.OpenADC import OpenADC

# Will fail and print serial numbers of connected devices
scope = cw.scope() 

scope = OpenADC()

# Will report out of limits error, but still works
# Replace <Serial Number> with the s/n of the device you want to connect
scope.scopetype.getParams().getChild('Serial Number').setValue('<Serial Number>') 

# Should succeed
scope.con()

# Continue as usual...