Menu
Microbots
0
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Wavelit Display
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Sign in
  • English
  • Your Cart is Empty
Microbots
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • Wavelit Display
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Language

  • 0 0

CodeCell: Reading the Roll, Pitch & Yaw

CodeCell Motion Sensing

CodeCell includes a BNO085 motion sensor that combines an accelerometer, gyroscope, and magnetometer to calculate rotation angles in real time. In this guide, you'll learn how to measure roll, pitch, and yaw, the three fundamental orientation angles used in robotics, drones, and motion-tracking applications.

Understanding Roll, Pitch, and Yaw

The BNO085 sensor fuses multiple motion readings into a rotation vector that can be read using the CodeCell library. You can directly access these rotation angles (in degrees) with the following function:

myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);

This function updates the three float variables you define for the current orientation of the CodeCell:

  • Roll – rotation around the X-axis (tilt left or right)
  • Pitch – rotation around the Y-axis (tilt forward or backward)
  • Yaw – rotation around the Z-axis (turn left or right)

Before reading these values, initialize rotation sensing in your setup using:

myCodeCell.Init(MOTION_ROTATION);

Example – Reading Roll, Pitch, and Yaw

This example prints CodeCell’s rotation angles to the Serial Monitor at 10Hz, giving you live feedback on how the module moves.


#include <CodeCell.h>

CodeCell myCodeCell;

float Roll = 0.0;
float Pitch = 0.0;
float Yaw = 0.0;

void setup() {
  Serial.begin(115200);              // Start serial monitor
  myCodeCell.Init(MOTION_ROTATION);  // Enable rotation sensing
}

void loop() {
  if (myCodeCell.Run(10)) {          // Run loop at 10 Hz
    myCodeCell.Motion_RotationRead(Roll, Pitch, Yaw);
    Serial.printf("Roll: %.2f°, Pitch: %.2f°, Yaw: %.2f°\n", Roll, Pitch, Yaw);
  }
}

Customization Tips

  • Adjust update rate: Change the myCodeCell.Run() frequency to suit your application.
  • Filter motion data: Use averaging or thresholds to smooth movement or ignore small jitters.
  • Expand control: Map roll, pitch, or yaw to multiple servos, LEDs, or motors for responsive motion-based projects.

 

  • Share:

Follow

Github

  • About
  • Software
  • Education
  • Contact
  • FAQs
  • Terms
  • Refund Policy
  • Privacy Policy

Join our Community ~ Be the first to know about new products and get exciting deals!

© 2026 Microbots.

★ Reviews

Let customers speak for us

83 reviews
Write a review
87%
(72)
5%
(4)
2%
(2)
2%
(2)
4%
(3)
77
21
G
Experiment in Progress Mug
Gerald Kendrick

I am enjoying my Experiment in Progress coffee mug. It fits in well in the lab.

K
12-in-1 Screwdriver (Pen-Size)
Klaas

Very useful fun little screwdriver for the all tiny stuff

f
ProtoBot
frederic marty

I don't have much time right now to test the micro bot, but it looks good.

f
MotorCell
frederic marty

I don't have much time right now to test it but it looks good.

M
ProtoBot
Mehmed Muslija

ProtoBot has met all my expectations.
Watching one of the videos on YouTube, I thought it would be interesting and educational to make a small project for my 8 year old cousin. ProtoBot has provided a wide range of experiences and encouraged my cousin to take on new projects.

User picture
123