# RuntimeError: DMA channel not started on ultra96

**URL:** <https://discuss.pynq.io/t/runtimeerror-dma-channel-not-started-on-ultra96/7556>\
**Category:** Support\
**Created:** [October 2, 2024, 3:58pm UTC](https://discuss.pynq.io/t/runtimeerror-dma-channel-not-started-on-ultra96/7556 "2024-10-02T15:58:09Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leo](https://avatars.discourse-cdn.com/v4/letter/l/c2a13f/32.png) [@Leo](https://discuss.pynq.io/u/Leo)\
**Post date:** [October 2, 2024, 3:58pm UTC](https://discuss.pynq.io/t/runtimeerror-dma-channel-not-started-on-ultra96/7556/1 "2024-10-02T15:58:09Z")

</div>

Hi everyone,

This is my first time using PYNQ. I’m getting this raise RuntimeError(“DMA channel not started”) error pointing to the line dma\_recv.transfer(output\_buffer) when calling my python script onto the bitstream.

I’m guessing this is an issue with either the HLS or the vivado IP? I’m following a tutorial so I’m not sure what causes this issue.

The python script:

```auto
from pynq import Overlay, allocate
import numpy as np

overlay = Overlay("/home/xilinx/IP/IP.bit")

# DMA objects
dma = overlay.axi_dma_0
dma_send = dma.sendchannel
dma_recv = dma.recvchannel

# Allocate input and output buffers
datasize = 784
input_buffer = allocate(shape=(datasize,), dtype=np.uint32)
output_buffer = allocate(shape=(1,), dtype=np.uint32)

# Send data from input_buffer using DMA send
dma_send.transfer(input_buffer)
# Receive data into output_buffer using DMA receive (memory-to-memory transfer)
dma_recv.transfer(output_buffer)
# Wait for the DMA operations to complete
dma_send.wait()
dma_recv.wait()
# Check buffers and print result
print("Input Buffer (Sent Data):", input_buffer)
print("Output Buffer (Received Data):", output_buffer)

```

 ![image](https://us1.discourse-cdn.com/flex019/uploads/pynq1/original/2X/0/05f8165eb3af94afb42d11cdc48f58f348d41211.png)

---

<div class="post-metadata">

**Author:** ![marioruiz](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/marioruiz/32/2177_2.png) [@marioruiz](https://discuss.pynq.io/u/marioruiz)\
**Post date:** [October 2, 2024, 4:31pm UTC](https://discuss.pynq.io/t/runtimeerror-dma-channel-not-started-on-ultra96/7556/2 "2024-10-02T16:31:46Z")

</div>

Hi @Leo,

Welcome to the PYNQ community.

I wrote an extensive tutorial about debugging this. You can find it here [Debugging Common DMA Issues [Part 3]](https://discuss.pynq.io/t/debugging-common-dma-issues-part-3/7157)

Mario
