# Flashing custom gateware

Detailed information on flashing custom gateware can be found in the [LambdaConcept documentation](https://docs.lambdaconcept.com/screamer/programming.html). You will also need to follow these [OpenOCD instructions](https://docs.lambdaconcept.com/screamer/openocd.html).

## The JTAG Board

LambdaConcept sells a [JTAGSerial ](https://shop.lambdaconcept.com/home/25-jtagserial-pack.html)device. This is required in order to flash custom gateware onto this DMA device. This is not a very user-friendly system and if done incorrectly, could permanently damage the DMA device.&#x20;

### Using the Board

1. Plug the provided jumper wires into the board and your PCIe device. **Ensure it is in the correct orientation!**
2. Plug the JTAGSerial board into your PC via the provided USB cable.&#x20;
3. Ensure your PCIe Device is plugged into a PC. Power on that PC.
4. Download the precompiled OpenOCD windows binaries from the [LambdaConcept docs](https://docs.lambdaconcept.com/screamer/openocd.html).
5. Download [Zadig](https://zadig.akeo.ie/).
6. Follow the [WinUSB driver for Windows](https://docs.lambdaconcept.com/screamer/openocd.html#winusb-driver-for-windows) instructions. It is **very important** that you replace the correct driver. This is the **Interface 0** device.
7. Download the [proxy and flashing scripts](https://docs.lambdaconcept.com/screamer/programming.html#get-proxy-and-flashing-scripts) provided by LambdaConcept.
8. Place your custom gateware .bin file in the proxy and flashing scripts folder.
9. Run the flashing script using OpenOCD as outlined by LambdaConcept in [their docs](https://docs.lambdaconcept.com/screamer/programming.html#run-the-flashing-script).
10. Remove the JTAG from your Device and reboot the target machine by fully powering off and back on.&#x20;

## Post-Flash Actions

You should read up on Device Spoofing for details on what actions to take after flashing your device in order to clear your system of any bad identifiers.

{% content-ref url="/pages/-MfS1quFqT8jqTK13fLU" %}
[Device Spoofing](/anticheat-evasion/pci-configuration-space.md)
{% endcontent-ref %}


---

# 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/devices/screamer-pcie-r04/flashing-custom-gateware.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.
