Cortex compatibility with IMU

Is the Cortex compatible with an IMU?

Electrically compatible: Yes; it can be powered by the 5V rails of the Cortex.
Signal compatible: Yes, with caveats. See below
Software/Driver: Well…sorta. There isn’t a driver, and you’d have to to do the talking. Not terribly difficult, but again, see below.

Since generic I2C devices aren’t directly supported, It would likely be easier to talk to it via UART. So, you’d have to strap the configuration pins of the IMU (PS0 wired to ground; PS1 wired logic high) for UART comms. Then wire it to the TTL level UART ports of the Cortex, and talk to it that way.

See pinouts here:

Data sheet from Bosch contains communications details; I’ve attached it. Note that the autocalibration sequences require putting the device into various positions for a period of time after startup.

BST_BNO055_DS000_12.pdf (10.8 MB)

[Edited to add comms configuration, and added Bosch data sheet for the chip.]

What? PROS supports generic I2C communication and I believe ROBOTC does as well.

Wow. Very good points. I forgot I had used PROS for precisely that reason on a project a while ago. And I also remember James saying he added generic I2C; it’s just not legal for VRC competition since there aren’t any official sensors that need it.

Let me see…

Here’s the thread:

Thanks for the slap-on-the-forehead reminder, @edjubuh.

Note that all this means you don’t have to talk via UART. But you still have to do all the communications work for talking to the device, no matter what system you use.

Here’s the PROS doc:

Go to the third party I2c device section.

No matter where or how you talk to the chip, you just need to read and write registers as defined in the datasheet in my previous post to get data and set modes as required.


Well there are the IMEs… :wink:

1 Like


@Barin yeah, I missed that. In my defense, there’s technically nothing stopping you from using the generic I²C functions from interfacing with the IMEs :stuck_out_tongue: