# Usage

## Plugging in the Device

The Screamer needs a PCIe x4 slot or larger to fit into. After plugging in the device, it may be apparent that the USB-C port is slightly obstructed by your case. You'll need to brainstorm a solution for this, either use a PCIe riser bracket, remove the PCIe shield from your case, or something else.

## First Time Startup

1. Ensure both your primary and secondary machines are powered off.
2. Connect the USB-C cable to a USB-3 port on a secondary machine (preferably windows).&#x20;
3. Power on the secondary machine; log in.
4. Power on the primary machine (with the device plugged in).
5. Open BIOS, turn off IOMMU. Save and exit.
6. Log in to the primary machine.&#x20;
7. On the secondary machine, you may need to update the USB driver to the [D3XX driver](https://ftdichip.com/drivers/d3xx-drivers/') shipped by FTDI.&#x20;
8. On the secondary machine, download [PCILeech](https://github.com/ufrisk/pcileech). If that doesn't ship with [LeechCore](https://github.com/ufrisk/LeechCore), you should download that as well.
9. On the secondary machine, run pcileech.exe with the probe argument (see below).
10. PCILeech should start probing the primary machine's memory. You can use CTRL+C to cancel this operation.

```bash
./pcileech.exe probe
```

### Probe Command Error

If your probe command spits out an error. It's possible your USB/PCIe connection is bad, IOMMU is still enabled, the gateware preinstalled was busted, or you received fucked hardware.&#x20;

Check the connections, reboot your machines, and try again. If that does not work, skip to building and flashing your own custom gateware. If you're lucky, loading your own custom gateware will resolve the error.

## Daily Usage

At this point, your device is ready to go for hackin. Ensure that your secondary machine is always powered on when you start the primary machine, otherwise, you will run into device initialization issues.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://dma.lystic.dev/fpga-devices/using-dma.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
