code: func (h *ADXL345Driver) update() (err error) {
  
  	if h.connection == nil {
  		return errors.New("connection not available")
  	}
  
  	h.connection.Write([]byte{ADXL345_REG_DATAX0})
  	buf := []byte{0, 0, 0, 0, 0, 0}
  
  	_, err = h.connection.Read(buf)
  	if err != nil {
  		return
  	}
  
  	h.rawX = int16(binary.LittleEndian.Uint16(buf[0:2]))
  	h.rawY = int16(binary.LittleEndian.Uint16(buf[2:4]))
  	h.rawZ = int16(binary.LittleEndian.Uint16(buf[4:6]))
  
  	h.x = h.dataFormat.ConvertToSI(h.rawX)
  	h.y = h.dataFormat.ConvertToSI(h.rawY)
  	h.z = h.dataFormat.ConvertToSI(h.rawZ)
  
  	return
  }
docs: // update the cached values for the axis to avoid errors if the connection is not available (polling too frequently)