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: Making a Step Counter

CodeCell Step Counter

CodeCell includes a built-in BNO085 motion sensor capable of detecting and counting steps using onboard activity algorithms. In this example, you’ll learn how to use the CodeCell Library to read step counts and display them on an OLED screen, turning your CodeCell into a tiny pedometer or wearable fitness tracker.

How Steps Are Counted

The BNO085 fuses data from its accelerometer, gyroscope, and magnetometer to recognize walking or running patterns and generate accurate step counts. You can read the total step count at any time with a single function:

uint16_t steps = myCodeCell.Motion_StepCounterRead();

To enable this mode, initialize motion sensing with:

myCodeCell.Init(MOTION_STEP_COUNTER);

Once initialized, CodeCell continuously tracks steps internally and updates the count whenever you call the function above.

Example – Display Step Count on OLED

This example reads the live step count and displays it on a small OLED screen (SSD1306). Connect your OLED’s GND, 3V3, SDA, and SCL pins to the lower side of CodeCell.


#include <CodeCell.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

CodeCell myCodeCell;

/* OLED Display Configuration */
#define SCREEN_WIDTH 64
#define SCREEN_HEIGHT 32
#define OLED_RESET -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

uint16_t step_counter = 0;

void setup() {
  Serial.begin(115200);
  myCodeCell.Init(MOTION_STEP_COUNTER);  // Enable step counter mode

  if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println("Display Error");
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(SSD1306_WHITE);
  display.display();
  delay(2000);
}

void loop() {
  if (myCodeCell.Run(10)) {              // Run loop at 10 Hz
    step_counter = myCodeCell.Motion_StepCounterRead();  // Read step count

    display.clearDisplay();
    display.setCursor(5, 16);
    display.print(F("Steps: "));
    display.print(step_counter);
    display.display();
  }
}

Customization Tips

  • Add goals: Set daily targets or use LED feedback when reaching milestones.
  • Track activity time: Combine with CodeCell’s MOTION_ACTIVITY mode for walking or running detection.
  • Store data: Log steps to EEPROM or send them over Bluetooth for wearable applications.

 

  • 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

74 reviews
Write a review
85%
(63)
5%
(4)
3%
(2)
3%
(2)
4%
(3)
68
21
J
ProtoBot
Justin Tzitzis

greatest flexible pcb robot out there

G
ProtoBot
Gennadii

Got a Pro version, it's very easy to put together, and it works great.
Would be great to have brushless motors and more GPIO access through the plastic shell in ProtoBot v2

A
ProtoBot
Armand

It is a compact, very well designed RC-like robotic car with endless possibilities for those with active imaginations. Inspirational and creative in a small form factor. Innovate and enjoy!

User picture
J
ProtoBot
Javier

I Recieved yesterday my ProtoBot and the quality and details are awesome!

User picture
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

123