ChipSHOUTER Electromagnetic Fault Injection (EMFI) Platform

repository·master·Indexed 41 days ago

https://github.com/newaetech/chipshouter

An EMFI platform by NewAE Technology Inc. for research and teaching. This documentation includes the Python API, firmware update guides (supporting versions up to 2.0.3), 3D mount assembly instructions, and hardware troubleshooting for output resistor failures and EEPROM wear.

Tokens
1.9K
Snippets
5
Records
15
Agent score
52%

What's inside ChipSHOUTER

  1. Access ChipSHOUTER® API and Documentation

    master

    ChipSHOUTER® is an Electromagnetic Fault Injection (EMFI) platform. This repository contains the Python API, examples, and related tools.

    To interact with the platform programmatically, use the Python API (licensed under MIT). For detailed technical guidance, refer to the following documentation sources:

  2. Explore Open-Source EMFI Tools

    master

    Several open-source tools are available to complement the ChipSHOUTER® platform or other EMFI systems:

    • Ballistic Gel: A SRAM-based calibration board used to measure the impact of EM fault injection. It is useful for comparing different probe tip types.
    • Simple EMFI Target: A standalone, simple target designed for quickly verifying that an EMFI system is operational without risking damage to connected devices.
    • ChipShover: A XYZ table and controller. The controller features fully open-source firmware, enabling the development of custom platform extensions.
  3. Measure ChipSHOUTER detection voltage

    master

    Use this test to determine if the output resistor is working correctly or has become high resistance. You will need a multimeter and a 1K-ohm resistor.

    Test Procedure

    1. Open Circuit Measurement:

      • Remove the probe tip from the ChipSHOUTER.
      • Power up the unit.
      • Measure the voltage at the output of the ChipSHOUTER SMA.
      • Connections: Negative lead to the SMA shield; positive lead to the SMA center pin.
      • Expected Result: Approximately 14V - 18V.
    2. Loaded Measurement:

      • Use the 1K-ohm resistor to short the center pin of the SMA to the outside shield of the SMA.
      • Measure the voltage at the center pin again.
      • Expected Result: 0.8V or higher (normally around 1V).

    Diagnosis

    • If the center pin voltage is lower than 0.5V, the output resistor is likely damaged.
    ### Expected Voltage Reference
    - Open SMA: 14V - 18V
    - Loaded (1K-ohm): >= 0.8V (Fail if < 0.5V)
  4. Workaround for running older ChipSHOUTER firmware

    master

    If you must use a firmware version older than 1.8.7, you must minimize EEPROM writes to prevent rapid wear.

    Strategy: Modify your automation scripts to avoid changing settings frequently. For example, do not change the voltage setting every time a script runs (e.g., avoid selecting a new random voltage every second).

  5. Download the ChipSHOUTER firmware update file

    master

    To update your device, you must first download the appropriate .fup firmware file. The download URL follows a specific pattern where you must substitute the XXXXXX placeholder with your specific board ID.

    URL Pattern: https://media.newae.com/cw520fw/all_devices/cw520_XXXXXX_2-0-3_firmware.fup

    Note: You can find your board ID by observing the serial port output when the device is in bootloader mode.

    https://media.newae.com/cw520fw/all_devices/cw520_XXXXXX_2-0-3_firmware.fup
  6. Update ChipSHOUTER firmware (Bootloader Mode)

    master

    If your ChipSHOUTER is in bootloader mode (it is currently printing its board ID over the serial port), you cannot use an instance method. Instead, call the class method ChipSHOUTER.update_firmware() directly.

    1. Identify the serial port.
    2. Call ChipSHOUTER.update_firmware() providing None for the instance, the path to the .fup file, and the comport argument.
    from chipshouter import ChipSHOUTER
    ChipSHOUTER.update_firmware(None, "/path/to/firmware.fup", comport="<SERIAL_PORT>")
  7. Repairing ChipSHOUTER output resistor failure

    master

    A failed output resistor cannot be repaired by the user. The repair requires removing a 2-stage coating from the high-voltage portions of the board, replacing the resistor, and reapplying/heat-curing the coating.

    Repaired and new units use an improved part with better pulse power ratings compared to the original substituted parts (which may have a datecode 2027).

  8. Update ChipSHOUTER® Firmware

    master

    To update your ChipSHOUTER® device, refer to the official firmware update guide which provides the latest firmware versions and step-by-step instructions on how to perform the update.

    https://github.com/newaetech/ChipSHOUTER/blob/master/documentation/Firmware%20Update.md
  9. Fix ChipSHOUTER EEPROM issues by upgrading firmware

    master

    To resolve EEPROM wear issues and restore full reliability, upgrade your ChipSHOUTER to firmware 1.8.7 or later.

    In firmware 1.8.7 and onward, the affected EEPROM page is mapped out of use. This means a physical hardware replacement is not required to fix the reliability issues caused by the errata.

  10. Update ChipSHOUTER firmware (Programmed Mode)

    master

    If your ChipSHOUTER is already programmed and running normally, use the update_firmware() method on an instance of the ChipSHOUTER class to reprogram the device.

    1. Connect to the device via its serial port.
    2. Call update_firmware() passing the path to the downloaded .fup file.
    from chipshouter import ChipSHOUTER
    cs = ChipSHOUTER('<SERIAL_PORT>')
    cs.update_firmware('/path/to/firmware.fup')