GUIDED BUILD / C++
Build a CoreS3 motion counter
Use the built-in IMU and screen to count distinct motion bursts, with gravity rejection, rearming and a cooldown.

What you will build
An offline CoreS3 application that counts motion events using a testable C++ policy and displays the result locally.
The course supplies guided source code and local tests. Board behavior requires your own firmware build and physical validation; these guides do not grant automatic skill mastery.
Before you start
Use a CoreS3 with its built-in BMI270 IMU and M5Unified support. The desktop policy runs without the board.
Your build sequence
- 01
Define a motion event
Distinguish gravity, noisy samples and a deliberate counted burst.
- 02
Bring up the actual CoreS3
Use the documented board and IMU support before adding the counter.
- 03
Test edges, rearming and cooldown
Separate event admission from how often the hardware is sampled.
- 04
Run the counter on the device
Connect new IMU samples to the policy and update the local display.
- 05
Tune a repeatable motion demo
Gather evidence before making the device more elaborate.
- 06
Finish an offline sensor application
Keep useful evidence and choose a focused next extension.
- 01Desktop policy tests
- 02Target firmware build
- 03Physical observations
- 04Repeatable project notes
Parts for the physical build
- M5Stack CoreS3 with its built-in IMU and screen
- USB data cable and a computer with Arduino IDE
- M5Stack board support and the M5Unified library
Existing compatible parts work too. Equipment cards appear in the relevant lessons.