Menu
Microbots
0
  • Learn
    • Getting Started
    • Maker Builds
    • Education
  • Shop
    • ProtoBot
    • 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
    • Modules & Parts
    • Tools & Gears
    • Coming Soon
  • About
    • Our Story
    • Reach Out
    • FAQs
  • Language

  • 0 0

CodeCell: Reading the Gyroscope

CodeCell Gyroscope

CodeCell includes a built-in BNO085 3-axis gyroscope that measures angular velocity - how fast CodeCell is rotating around each axis. This lets you detect turning, spinning, or orientation changes.

How It Works

The gyroscope measures rotation speed in degrees per second (°/s) along three axes:

  • X-axis → Tilt forward/backward
  • Y-axis → Tilt left/right
  • Z-axis → Twist or spin

You can enable and read gyroscope data using two simple functions:

myCodeCell.Init(MOTION_GYRO);             // Enable gyroscope sensing
myCodeCell.Motion_GyroRead(x, y, z);      // Read angular velocity on all axes

Each reading gives the current rotation speed on the X, Y, and Z axes in °/s.

Example 1 – Read Gyroscope Data

This example prints live angular velocity readings to the Serial Monitor, showing how fast CodeCell is rotating around each axis.


#include <CodeCell.h>

CodeCell myCodeCell;

float x = 0.0, y = 0.0, z = 0.0;

void setup() {
  Serial.begin(115200);
  myCodeCell.Init(MOTION_GYRO);  // Initialize gyroscope
}

void loop() {
  if (myCodeCell.Run(10)) {      // Run at 10 Hz
    myCodeCell.Motion_GyroRead(x, y, z);  // Read gyro data

    Serial.print("Gyro X: "); Serial.print(x);
    Serial.print("  Y: "); Serial.print(y);
    Serial.print("  Z: "); Serial.println(z);
  }
}

What You’ll Notice:

  • When still, values are close to 0.
  • Tilting forward/backward changes X.
  • Tilting left/right changes Y.
  • Rotating like a steering wheel changes Z.

Example 2 – Detect Rotation and Change LED Color

This example changes CodeCell’s onboard LED color based on rotation direction, red when turning left, green when turning right.


#include <CodeCell.h>

CodeCell myCodeCell;

float x = 0.0, y = 0.0, z = 0.0;
const float ROTATION_THRESHOLD = 3.0;  // Rotation speed threshold (°/s)

void setup() {
  Serial.begin(115200);
  myCodeCell.Init(MOTION_GYRO);  // Enable gyroscope
}

void loop() {
  if (myCodeCell.Run(10)) {      // Run at 10 Hz
    myCodeCell.Motion_GyroRead(x, y, z);  // Read angular velocity

    Serial.print("Gyro Z: ");
    Serial.println(z);

    if (z > ROTATION_THRESHOLD) {          // Rotating right
      myCodeCell.LED(0, 255, 0);           // Green LED
    } 
    else if (z < -ROTATION_THRESHOLD) {    // Rotating left
      myCodeCell.LED(255, 0, 0);           // Red LED
    } 
    else {
      myCodeCell.LED(0, 0, 0);             // LED off
    }
  }
}

How It Works:

  • Z > 3 → Rotating right → LED turns green.
  • Z < -3 → Rotating left → LED turns red.

Adjust ROTATION_THRESHOLD to control sensitivity:

  • Higher → Detects only fast rotations.
  • Lower → Detects even small movements.

Customization Tips

  • Try different axes: Visualize pitch (X) or roll (Y) using other LED colors.
  • Detect flicks: Use short bursts of rotation for gesture input.
  • Combine with other sensors: Merge with accelerometer or magnetometer data for full motion tracking.
  • 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

67 reviews
Write a review
85%
(57)
6%
(4)
1%
(1)
3%
(2)
4%
(3)
62
21
C
CodeCell C3
Cloke74

Great piece of kit, had just what i needed to complete the project i had in mind. Shame shipping to the UK is so expensive, but appreciate this isn’t necessarily in the hands of MicroBots

A
CodeCell C6
Anonymous

I had an issue, got a red light, I used too much flux. Support said clean it, then the one sensor worked fine. I got the help and answer same day I provided a foto.

A
CodeCell C6 Drive
Anonymous

I think this is the best of the ESP offered, most versatile.

User picture
P
CodeCell C6
Prudhvi tej Chinimilli

Been testing the Microbots CodeCell C6 and honestly impressed with how much functionality they packed into such a tiny module. Great form factor for rapid prototyping wearable/embedded sensing applications. ESP32-C6 + IMU integration makes development much easier compared to building everything from scratch.

Still exploring battery optimization and compact LiPo options for our use case, but overall the platform is promising for low-cost real-time sensing systems. Excited to keep building with it.

F
CodeCell C6
Francisco Estivallet

Amazing hardware, my go to for compact projects.

User picture
123