---
name: "iio_writedev"
section: "1"
platform: "linux"
package: "libiio"
version: "0.26-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/iio_writedev"
---

# iio\_writedev(1)

write buffers on an IIO device

## NAME

iio\_writedev - write buffers on an IIO device

## SYNOPSIS

**iio\_writedev** \[ *options* \] \[-t \<trigger\>\] \[-T \<timeout-ms\>\] \[-b \<buffer-size\>\] \[-s \<samples\>\] \<iio\_device\> \[\<channel\> ...\]

## DESCRIPTION

**iio\_reg** is a utility for writing buffers from connected IIO devices.

## OPTIONS

- **-h, --help**

  Tells *iio\_writedev* to display some help, and then quit.

- **-V, --version**

  Prints the version information for this particular copy of *iio\_writedev* and the version of the libiio library it is using. This is useful for knowing if the version of the library and *iio\_writedev* on your system are up to date. This is also useful when reporting bugs.

- **-S, --scan \[backends\]**

  Scan for available IIO contexts, optional arg of specific backend(s) 'ip', 'usb' or 'ip:usb'. Specific options for USB include Vendor ID, Product ID to limit scanning to specific devices 'usb=0456,b673'. vid,pid are hexadecimal numbers (no prefix needed), "\*" (match any for pid only) If no argument is given, it checks all that are available.

- **-t --trigger**

  Use the specified trigger, if needed on the specified channel

- **-b --buffer-size**

  Size of the capture buffer. Default is 256.

- **-s --samples**

  Number of samples (not bytes) to capture, 0 = infinite. Default is 0.

- **-T --timeout**

  Buffer timeout in milliseconds. 0 = no timeout. Default is 0.

- **-c --cyclic**

  Use cyclic buffer mode.

- **-u, --uri**

  The Uniform Resource Identifier *(uri)* for connecting to devices, can be one of:

  - ip:\[address\]

    network address, either numeric (192.168.0.1) or network hostname

  - ip:

    blank, if compiled with zeroconf support, will find an IIO device on network

  - usb:\[device:port:instance\]

    normally returned from **iio\_writedev -S**

  - serial:\[port\],\[baud\],\[settings\]

    which are controlled, and need to match the iiod (or tinyiiod) on the other end of the serial port.

    - \[port\]

      is something like '/dev/ttyUSB0' on Linux, and 'COM4' on Windows.

    - \[baud\]

      is is normally one of 110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200 \[default\], 128000 or 256000, but can vary system to system.

    - \[settings\]

      would normally be configured as '8n1' this is controlled by:

      - data\_bits:

        (5, 6, 7, 8 \[default\], or 9)

      - parity\_bits:

        ('n' none \[default\], 'o' odd, 'e' even, 'm' mark, or 's' space)

      - stop\_bits:

        (1 \[default, or 2)

      - flow\_control:

        ('0' none \[default\], 'x' Xon Xoff, 'r' RTSCTS, or 'd' DTRDSR)

  - local:

    with no address part.

## RETURN VALUE

If the specified device is not found, a non-zero exit code is returned.

## USAGE

You use iio\_writedev in the same way you use many of the other libiio utilities. You should specify a IIO device, and the specific channel to write. Since this is a write, channels must be output. If no channel is provided, iio\_writedev will write to all output channels. If no device is provided, iio\_writedev will print a few examples:

**`iio_writedev -a`**\
 Using auto-detected IIO context at URI "usb:3.10.5"\
 Example : iio\_writedev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-dds-core-lpc voltage0\
 Example : iio\_writedev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-dds-core-lpc voltage1\
 Example : iio\_writedev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-dds-core-lpc voltage2\
 Example : iio\_writedev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-dds-core-lpc voltage3\
 Example : iio\_writedev -u usb:3.10.5 -b 256 -s 1024 cf-ad9361-dds-core-lpc

This sends 1024 samples of I and Q data to the USB attached AD9361. data is taking from standard in, in a binary format.

**`iio_writedev -a -s 1024 cf-ad9361-dds-core-lpc voltage0 voltage1 < ./samples.dat`**

## SEE ALSO

[**iio\_attr**(1)](/iio_attr/1.md), [**iio\_info**(1)](/iio_info/1.md), [**iio\_readdev**(1)](/iio_readdev/1.md), [**iio\_reg**(1)](/iio_reg/1.md), [**iio\_writedev**(1)](/iio_writedev/1.md), [**libiio**(3)](/libiio/3.md)

libiio home page: **https://wiki.analog.com/resources/tools-software/linux-software/libiio**

libiio code: **https://github.com/analogdevicesinc/libiio**

Doxygen for libiio **https://analogdevicesinc.github.io/libiio/**

## BUGS

All bugs are tracked at: **https://github.com/analogdevicesinc/libiio/issues**
