|
|
(25 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
− | The CW1200 (ChipWhisperer Pro) is an upgraded version of the ChipWhisperer Lite capture hardware. The Pro includes an FPGA with much more space than the Lite, allowing many new features to be added, including a larger sample buffer, streaming-mode captures, additional trigger methods, and a touchscreen interface. These features make it a high-end device suitable for laboratory use.
| + | == Page Moved == |
| | | |
− | Check out a [https://youtu.be/qS6JwX4SBOI sneak peek of the CW-Pro].
| + | See [https://rtfm.newae.com/Capture/ChipWhisperer-Pro/ NewAE RTFM Page]. The previous content on this wiki has been moved to the above link. See wiki history if you would like to view exact older versions of this page. |
− | | + | |
− | '''(TODO: picture of CW-Pro)'''
| + | |
− | | + | |
− | = Power Supply =
| + | |
− | The ChipWhisperer Pro can only be powered through its 5 V jack. It cannot be powered through the USB port - internally, there are no connections to the USB port's 5 V rail. This limitation is primarily due to the high current draw of the Pro: while powering the touchscreen running and an external target, it would be easy to exceed the USB current limit, causing all sorts of issues. | + | |
− | | + | |
− | To make this setup more flexible, the Pro ships with two power sources:
| + | |
− | * A 5 V, 2.1 A power supply. This supply is suitable for a permanent bench setup.
| + | |
− | * A USB-to-barrel jack cable. This solution is more portable: if you're travelling with a laptop, you can use a second USB port for power. A USB charger will also work here.
| + | |
− | If you're using the USB power cable, it is recommended to use a separate power supply to power any external target boards.
| + | |
− | | + | |
− | = Basic Usage =
| + | |
− | The basic features on the Pro are exactly the same as the ChipWhisperer Lite. This means that any scripts and tutorials made for the Lite will work on the Pro, too: the connectors and pinouts are exactly the same.
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == AVR Programmer ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/AVR Programmer}}
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == XMEGA Programmer ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/XMEGA Programmer}}
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == Using Glitch Port ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/Glitch Port}}
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == Using Measure Port ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/Measure Port}}
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == 20-Pin Connector ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/20-Pin Connector}}
| + | |
− | | + | |
− | {{CollapsibleSection
| + | |
− | |intro = == Upgrading SAM3U Firmware ==
| + | |
− | |content= CW1173_ChipWhisperer-Lite/Upgrading SAM3U Firmware}}
| + | |
− | | + | |
− | = Advanced Features =
| + | |
− | == Streaming Mode ==
| + | |
− | The ChipWhisperer Pro has a streaming mode that allows extremely long captures as long as relatively low sampling rates are used. For example, this plot shows an exerpt from two traces with nearly 1 million samples:
| + | |
− | | + | |
− | '''TODO: add streaming example'''
| + | |
− | | + | |
− | This capture mode is useful for many types of attacks, including:
| + | |
− | * Full captures of slow software AES libraries
| + | |
− | * Power analysis on ECC
| + | |
− | * Context switches on embedded operating systems
| + | |
− | | + | |
− | While streaming, the ChipWhisperer hardware sends ADC data back to the capture software while recording more samples (instead of waiting until the end of the capture). During this process, the ADC samples are sent back to the computer in packets of approximately 3000 samples at a time. As a block diagram, this looks like:
| + | |
− | | + | |
− | [[File:Cwpro-stream.PNG|800px]]
| + | |
− | | + | |
− | The main danger in streaming mode is that the FPGA's sample buffer can overflow if the PC doesn't request these packets quickly enough. In practice, the maximum transfer rate is around 10 Msamples/s, so the maximum ADC frequency is approximately 10 MHz in streaming mode. Trying to stream above this rate will usually cause data to be lost: the FPGA overwrites samples after the buffer is full, so it's impossible to recover these samples after overrunning the buffer.
| + | |
− | | + | |
− | On the software end, there are two things to watch for:
| + | |
− | * Long captures from streaming mode (millions of points) may take several seconds to record. When working with these long captures, make sure the software's timeouts are long enough.
| + | |
− | * Extremely long captures take a lot of memory. 64-bit Python is recommended if you plan on capturing many traces with millions of samples - you can hit the memory limit on 32-bit Python pretty quickly.
| + | |
− | | + | |
− | == SAD Trigger ==
| + | |
− | == UART/SPI Trigger ==
| + | |
− | == SMA I/O ==
| + | |
− | The Pro has an extra SMA connector intended to be used for additional trigger logic. It can be used either as a trigger input or output.
| + | |
− | | + | |
− | '''Input''': The Aux SMA trigger input can be used in the exact same manner as the other trigger inputs: the digital level is combined with the other active triggers (through an AND or OR gate) and this is used as the trigger signal. This is helpful for using other creative trigger signals. For example, if you have a custom target board, you could connect an FPGA output as an additional trigger signal. Alternatively, you could use a high-end oscilloscope's pattern detection as a trigger input.
| + | |
− | | + | |
− | '''Output''': When the trigger module produces a trigger signal, the ChipWhisperer can reproduce this signal on the Aux SMA. This allows an external oscilloscope to be used to capture traces alongside the ChipWhisperer.
| + | |
− | | + | |
− | = Touchscreen =
| + | |
− | - Pictures of screens
| + | |
− | - Descriptions of displays
| + | |
− | | + | |
− | {{Template:Hardware}}
| + | |