GY-291 ADXL345 accelerometer with ESP32

Supply 3.3-5 V Bus I2C I2C address 0x53 / 0x1D Measures acceleration
GNDVCCCSINT1INT2SDOSDASCL

Pins and ESP32 wiring

PinRoleESP32 pinNotes
GNDGroundGND
VCCPower3V3
CSNot wired to the ESP32—HIGH (default on the board) selects I2C
INT1InterruptD35
INT2InterruptVP
SDONot wired to the ESP32—Address select: LOW = 0x53, HIGH = 0x1D
SDAI2C data (SDA)D21
SCLI2C clock (SCL)D22

Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.

Check it is the real chip

Read register 0x00: a genuine part answers 0xE5. BoardPilot does this automatically in “Debug a problem”.

Starter code (Arduino)

#include <Wire.h>

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);  // SDA = GPIO 21, SCL = GPIO 22
  Wire.beginTransmission(0x53);
  bool found = Wire.endTransmission() == 0;
  Serial.println(found ? "GY-291 ADXL345 accelerometer found at 0x53" : "Not found: check power, GND and SDA/SCL");
}

void loop() {}

Sources

Try it in 3D in BoardPilot

BoardPilot Part data (JSON)

Related parts

Part data: CC BY 4.0, free to reuse with credit to BoardPilot.