Skip to content

feat:(motorgo-axis): Add BSP component for the MotorGo Axis board#640

Merged
finger563 merged 3 commits into
mainfrom
feat/motorgo-axis
Jun 15, 2026
Merged

feat:(motorgo-axis): Add BSP component for the MotorGo Axis board#640
finger563 merged 3 commits into
mainfrom
feat/motorgo-axis

Conversation

@finger563

@finger563 finger563 commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Description

This PR adds a new motorgo-axis BSP component for the MotorGo Axis board.

The new component introduces a singleton espp::MotorGoAxis board abstraction with:

  • documented pin mappings for the two 6-PWM BLDC motor channels
  • shared SSI/SPI encoder bus support for two MT6701 encoders
  • onboard hidden-bus LSM6DS33 IMU initialization via espp::Lsm6dso
  • Qwiic and hidden I2C bus accessors
  • user/status LED helpers, including direct brightness control and a Gaussian breathing effect

This PR also adds:

  • component metadata and README files
  • a safe example under components/motorgo-axis/example
  • Sphinx and Doxygen documentation entries
  • CI and component upload workflow entries in alphabetical order

Motivation and Context

This change adds first-class ESPP support for the MotorGo Axis hardware, similar to the existing motorgo-mini and motorgo-plink BSP components.

It provides a reusable, board-specific abstraction for Axis users so they can bring up motors, encoders, IMU, LEDs, and I2C buses using the same patterns already established in this repository.

How has this been tested?

The new example was built successfully with the existing ESP-IDF workflow from WSL using:

cd /mnt/c/Users/waemf/esp-cpp/espp/components/motorgo-axis/example
idfb build

This produced a successful esp32s3 example build for motorgo_axis_example.

Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):

N/A

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation Update
  • Hardware (schematic, board, system design) change
  • Software change

Checklist:

  • My change requires a change to the documentation.
  • I have added / updated the documentation related to this change via either README or WIKI

Software

  • I have added tests to cover my changes.
  • I have updated the .github/workflows/build.yml file to add my new test to the automated cloud build github action.
  • All new and existing tests passed.
  • My code follows the code style of this project.

Copilot AI review requested due to automatic review settings June 13, 2026 21:02
@github-actions

Copy link
Copy Markdown

✅Static analysis result - no issues found! ✅

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ESPP board-support package (BSP) component for the Every Flavor Robotics MotorGo Axis (ESP32-S3) board, integrating it into the project’s documentation and CI/component-publishing flows.

Changes:

  • Introduces the components/motorgo-axis BSP component (pin maps + helpers for BLDC drivers, MT6701 SSI encoders, LSM6DS33 IMU over hidden I2C, and LED breathing/brightness control).
  • Adds a complete ESP-IDF example project for the MotorGo Axis board and wires it into the CI build matrix.
  • Integrates the new component into the documentation index and Doxygen inputs/examples list, and into the component upload workflow.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated no comments.

Show a summary per file
File Description
doc/en/motorgo_axis.rst Adds the MotorGo Axis documentation page and API reference include.
doc/en/motorgo_axis_example.md Includes the component example README into the docs.
doc/en/index.rst Adds motorgo_axis to the docs toctree.
doc/Doxyfile Adds the component header and example source to Doxygen INPUT/EXAMPLE_PATH.
components/motorgo-axis/src/motorgo-axis.cpp Implements the MotorGo Axis singleton BSP helpers (motors/encoders/IMU/LEDs).
components/motorgo-axis/README.md Documents the board features and what the BSP provides.
components/motorgo-axis/include/motorgo-axis.hpp Public API for the BSP (pin maps + initialization and accessors).
components/motorgo-axis/idf_component.yml Registers the component with the IDF Component Manager metadata and dependencies.
components/motorgo-axis/example/sdkconfig.defaults Sets example default target to esp32s3.
components/motorgo-axis/example/README.md Provides usage instructions for the example, including optional encoder polling.
components/motorgo-axis/example/main/motorgo_axis_example.cpp Example app demonstrating initialization + logging + optional encoder polling.
components/motorgo-axis/example/main/Kconfig.projbuild Adds a menuconfig option to enable encoder polling.
components/motorgo-axis/example/main/CMakeLists.txt Registers the example’s main component sources.
components/motorgo-axis/example/CMakeLists.txt Defines the ESP-IDF example project and component set.
components/motorgo-axis/CMakeLists.txt Registers the component sources/includes and ESP-IDF requirements.
.github/workflows/upload_components.yml Adds components/motorgo-axis to the publish/upload list.
.github/workflows/build.yml Adds the MotorGo Axis example to the CI build matrix (esp32s3).

@finger563 finger563 merged commit d454c49 into main Jun 15, 2026
110 of 112 checks passed
@finger563 finger563 deleted the feat/motorgo-axis branch June 15, 2026 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request motorgo axis

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants