Translate

Update On Universal i2c Support

Today I connected an ADXL345 Accelerometer to a BeagleBone Black and another to a Raspberry Pi.

Using a single application running on my Linux PC, I was able to simultaneously receive data updates from both devices.  The Linux PC sends out one universal Xideco i2c command and both devices respond. One message to control multiple devices!!!

In turn, each board forms a universal reply message and publishes the message.  The Linux application subscribes to these messages and parses them on arrival. Reply messages are consistent no matter what type of board is reporting.

Currently the data reported by each board consists of:

  • Board number ID
  • X, Y and Z Axis Raw data
  • X, Y, and Z Axis data expressed in g's
  • X, Y, and Z Axis data expressed as normalized acceleration values.
  • Pitch and Roll

Some of the features supported by the ADXL345 application:

  • Broadcast i2c requests simultaneously to all ADXL345 devices.
    • Each board replies with its own reply message
  • Send i2c requests addressed to a single board.
    •  Only  devices of interest respond, all others stay quiescent.
  • Data requests can be single shot for polling the i2c device.
  • Data requests can be set to report continuosly
    • Continuous reporting can be paused and restarted at any time.
Lots more to test , but this is a very good beginning.  If all goes well, I hope to publish this code within the next couple of weeks.