A set of unofficial libraries to interface with various Adafruit products, including their "Absolute Orientation IMU" (BNO055) and PWM expansion boards, from Windows 10 IoT Core. This does not include comprehensive coverage of their product lines or feature sets; while I have generally tried to implement large amounts of their official interfaces, some advanced features may have been left out. Pull requests are welcome!
While these were written specifically for the Adafruit-distributed breakout boards, they should work with the base chips used in those boards as well.
This code has been tested on a Raspberry Pi 3; other boards should work, but that hasn't been confirmed yet. If you get it running with another hardware configuration, open an issue to let me know!
Adafruit product page: https://www.adafruit.com/product/2472
Official library for Arduino: https://github.com/adafruit/Adafruit_BNO055
Chip datasheet: https://www.adafruit.com/datasheets/BST_BNO055_DS000_12.pdf
While there are interfaces for setting all sensor-supported modes, certain ones don't have pre-written logic to utilize them in this library. If you want to use those modes, you
should use the raw ReadByte
/WriteByte
methods along with the BNO055Register
enum.
Special thanks to Gunter Logemann and his ROV10 project for his implementation of the BNO055 interface. Some of the base logic in this implementation is based on his.
Adafruit product page: https://www.adafruit.com/products/815
Official library for Arduino: https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library
Chip datasheet: https://www.adafruit.com/datasheets/PCA9685.pdf
The interface for the PWM board in this library is slightly different than that in the official Adafruit package. While low-level interfaces are provided, this library exposes higher-level functions differently to align with typical C# design practices. This should be considered when translating Arduino code into C# with this library.
The core logic in this implementation is based on the official Adafruit library.