i2c Write Number

Write a number to a device at an I2C address using a specified number format.

pins.i2cWriteNumber(0, 0, NumberFormat.Int8LE, true);

Simulator: This function needs real hardware to work with. It’s not supported in the simulator.


  • address: the 7-bit I2C address of the device to send to send value to.
  • value: the number to send to address.
  • format: the NumberFormat for value.
  • repeated: if true, don’t send a stop condition after the write. Otherwise, a stop condition is sent when false (the default).

A repeated start condition is set to help make sure that when you want to write multiple numbers from the device at one time, it can happen without interruption. A start conditon is sent (if repeated is true) each time a number is written without a matching stop condition. When the last number is written, the stop conditon can be sent by setting repeated to false. For single writes, don’t use repeated or set it to false.


Write a big endian number to a device

Send the value 2055 to the 7-bit I2C address as a 32-bit number. The 32, big-endian, and integer chosen for the format.

pins.i2cWriteNumber(32, 2055, NumberFormat.Int32BE, false);

Repeated writes

Send three byte values to a device at address 33.

pins.i2cWriteNumber(33, 19, NumberFormat.Int32BE, true);
pins.i2cWriteNumber(33, 61, NumberFormat.Int32BE, true);
pins.i2cWriteNumber(33, 87, NumberFormat.Int32BE, false);

See also

i2c read number

What’s I2C?, number format