Skip to content

About

Open source Beyblade X launcher-shaft RPM meter for M5StickS3 with QRE1113 or TCRT5000 sensors, printable mounts and USB firmware updater

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

LaunchLab Mini for Beyblade X

Firmware 0.13.5 is the recommended production release. It adds filtered motion activity, RESTING with ADC pause/resume, CPU power management, filtered battery readings, saved mounting orientation and guarded data wipe. See release notes and source build context.

A removable launch-practice meter for Beyblade X string launchers. LaunchLab Mini uses an optical sensor to measure the launcher's shaft speed, then shows your peak RPM, launch history, and a replay of the device's tilt and rotation on an M5StickS3 screen. Use it to compare pulls, track consistency across practice sessions, and try to repeat a chosen launch.

Built around M5StickS3 K150, with separate printed mounts for the small analog QRE1113 or older TCRT5000 / LM393 sensor. The current firmware supports both sensors through a saved Sensor profile setting; the old TCRT 0.2.0 build is preserved separately. The M5 keeps its factory case, display, controller and battery; you do not need a phone to view your results. The mount is designed to be removable. Check the supplied launcher interface and printed fit before using it on your launcher.

USB firmware updater · Recovery & M5Stack reinstall · Firmware & print releases · Parts list & Amazon links · Build & wiring

Sidecar form factor

Sidecar is the LaunchLab form factor with the M5StickS3 mounted on its own carrier beside a separate optical sensor attachment. Sidecar supports either QRE1113 or TCRT5000; the name describes the mounting layout, not the sensor, firmware or hardware revision.

See the Sidecar build guide and hardware downloads.

Parts list — build your own

Start with one M5StickS3 K150 + one analog sensor + three short wires + printed mounts and M2 screws. The StickS3 already contains the display, processor, IMU and battery. Choose QRE1113 for the current firmware/UI, or TCRT5000 / LM393 for the preserved old-sensor firmware.

Amazon affiliate disclosure: As an Amazon Associate I earn from qualifying purchases. Amazon links below use the Beywatch affiliate tag and help support the project at no extra cost to you.

Qty per build Part Which build / purchase notes Buy
1 M5StickS3 K150 Both sensor builds. ESP32-S3, 8 MB flash/PSRAM, intact factory case. Amazon — M5Stack Official, ordered · M5Stack K150 specs
1 SparkFun QRE1113 analog breakout, ROB-09453 Small-sensor build; exact ordered listing. Analog ROB-09453 is required. Use the SparkFun link if Amazon is unavailable. Amazon — SparkFun analog board · SparkFun
1, instead of QRE TCRT5000 / LM393 module with AO Old-sensor build. Choose the four-pin VCC/GND/D0/A0 module and use A0. The mount uses the measured 31×13×1 mm PCB; check your board/header dimensions. Amazon — HiLetgo 10-pack, ordered
3 leads Short 2.54 mm jumper wires VCC, GND and AO/OUT; the ordered SinLoon pack is 8 cm male-to-female. Trim/reroute as needed, checking connector clearance. Amazon — SinLoon 8 cm · Amazon — ELEGOO mixed jumper kit
1 USB-C data cable Flashing and charging; use an existing cable that carries data. Use an existing data cable, or Amazon search — USB-C data cable
1 set Printed M5 + sensor mounts QRE1113 or TCRT5000 sensor v102, paired with Top Mount v2 (QRE only) or Sidecar v2. Download the sensor and matching mount pair separately. Print files
See below M2 machine screws Head style and length depend on the mount revision. Amazon — ordered MEIYYJ countersunk assortment; pan-head sizes below
Small amount 1.75 mm PLA filament Print yourself or use a printing service; saved profiles target P1S / 0.4 mm nozzle. Use existing PLA, a printing service, or Amazon search — PLA filament

Links marked ordered, plus the SparkFun, SinLoon, ELEGOO and uxcell links, match the project-related product listings from purchase history. Cable, filament and pan-head links marked Amazon search are general supplies, not exact ordered products. Check the selected variant and pack contents; purchasing a component does not establish printed fit.

Screws, connectors and tools

The ordered MEIYYJ assortment includes M2×4/5/6/8 flat/countersunk heads. Current v102 sensor clips need no clip screws. Use the specified pan-head pieces for current mounts: Amazon search — M2×4 pan-head · Amazon search — M2×6 pan-head.

Assembly Screws required
QRE1113 v102 sensor 2 × M2×4 pan-head for the pressure bar; captive clips need no screws.
Top Mount v2 2 × M2×4 pan-head from below into M5, plus 4 × M2×6 pan-head into the QRE base; cover snaps on.
Sidecar v2 2 × M2×4 pan-head into M5 secondary back holes; cover snaps on.
TCRT5000 v102 sensor 1 × M3 board screw (M3×6 CAD reference); captive clips need no screws.

If your sensor has bare pads, add a 3-pin 2.54 mm header or solder the three wires directly. The ordered uxcell right-angle male header strip can be cut to three pins; check header direction and cable clearance against the printed seat. You will also need a small screwdriver, cutters, and a soldering iron/solder if attaching bare wires or headers.

Use a Beyblade X string launcher with the supplied removable clip/port interface. The interface derives from Migbello's BP Gear Port Connector; check retention and optical access on your actual launcher before a pull. No universal launcher-fit claim is made by these CAD files.

Wire AO/OUT → G1 / GPIO1, VCC → 3V3 / 3V3_L2, GND → GND. DO is unused. The Grove red lead supplies 5 V; use the Hat 3.3 V pin for these builds. QRE build/wiring · TCRT build/wiring · Sensor and hardware versions.

Compact QRE1113 v102 with Top Mount v2, rendered from the exact source meshes

The updater defaults to 0.13.5 for both saved sensor profiles; the withdrawn 0.12.1 is not offered in its version list. It checks the complete known installed application before an app-only update, blocks downgrades and unknown/incomplete images, and skips writing an identical version. Repair / rollback requires an explicit target/backup confirmation; both app-only paths require the matching partition layout and boot selection. All modes check the detected ESP32-S3 chip and 8 MB flash capacity. The previous 0.12.2, 0.11.2, 0.11.1, 0.10.22, 0.10.21, 0.10.14, 0.10.11, 0.10.7 and 0.10.1 binaries are preserved. Update details · Recovery and vendor reinstall.

Current source: 0.13.5 production (QRE1113 or TCRT5000 via Sensor profile). Updater default: 0.13.5. Old TCRT firmware: 0.2.0. Current printed hardware: QRE1113 v102, TCRT5000 v102, Top Mount v2 and Sidecar v2. The historical v0.40 plate and earlier carriers remain available. Choose Settings → Mounting → Top or Sidecar to match the physical layout; display flip is a separate setting. Firmware, M5 carrier and sensor-mount versions are independent.

Choose your current kit and see every revision. Hardware families and shared sensor revisions have separate version histories.

What it does

The current source revision is 0.13.5, using CPU power management at 40–80 MHz and 50 kS/s optical sampling while active. It offers ten saved accent themes, five personal-best recap effects with Random/Off, optional Off/Low/High sound and USB backup/restore (K/R), and its build fails if any stack frame exceeds its budget. A saved Sensor profile selects QRE / Standard (80-count mark floor) or TCRT5000 (60-count floor). Controls are simpler: A opens or applies, B advances, hold B goes back or cancels. A saved 180-degree display flip and previewed brightness live in Settings. IMU startup recovery, prompt recaps, power diagnostics, tournament mode and USB keep-awake are retained. The old TCRT 0.2.0 release is an earlier RPM acquisition build with its own detector thresholds.

Feature What you see or do
Optical peak RPM Three-turn elapsed-time average peak by default; validated single-turn peak is selectable in Settings. Three consistent turns confirm the pull before a peak is recorded.
Live level Use the bubble and tilt angle while holding still to check the device's orientation before launching.
Launch recap After a pull, see peak RPM, a clearer Start-to-End rotation replay, and frozen Start/End tilt circles. Press A to recall the latest recap.
Launch history Review recent pulls and the current session's pull count, average, and best RPM. Retains up to 128 launches and 24 sessions on the device.
Pull and session trends Compare individual pulls, a trailing five-pull average, and session averages to follow your practice consistency.
Tournament mode Hold A on main to enter or exit; B cycles Recording Only/RPM.
Battery and auto-off Check percentage, voltage and charging status. Shake-to-wake sleep after a configurable 1–10 minutes (3-minute default) without activity; a detected USB computer keeps it awake.
Browser firmware updates Install over USB in desktop Chrome or Edge. Updates write only the application after checking the partition layout.

RPM is launcher-shaft speed, not a direct measurement of the Beyblade's release RPM or its spin in the stadium. Motion replay shows rotation and gravity-relative tilt; it does not measure travel distance or absolute compass heading. The live level references the screen plane until the mounting orientation is calibrated.

Device UI

These are saved device-framebuffer screenshots, not concept UI. Screens marked DEMO use synthetic sample data. The live/recap images are from firmware 0.6.2, and are historical examples; 0.10.1 has a revised tilt recap; history/trend images are from the 0.3.0 baseline and battery from 0.3.1. Image provenance records their sources.

Live RPM & levelLaunch recapLaunch history
Idle live screen showing READY, RPM placeholder and bubble level Demo launch recap showing 6500 RPM, a rotation replay and frozen start/end tilt circles Demo launch history listing pull RPM with session count, mean and best
Ready state, held RPM result and level.Recall the latest pull with A.Browse pulls and session summaries.
Pull trendSession trendBattery
Demo pull trend with individual measurements and a five-pull average Demo session trend plotting session-average RPM Battery page showing approximate charge, voltage, charging state and auto-off countdown
See variation across recent pulls.Compare averages across sessions.Check power before practice.

From the live screen, A shows the last recap and B opens the menu (History, New session, Battery, Settings, Tournament). In menus, A opens or applies, B moves to the next choice and hold B goes back one level or cancels an edit. Settings holds Sleep after, RPM method, Brightness, Flip display and Sensor profile; brightness and flip preview before you apply them. Hold A on main for one second to enter tournament mode (B cycles Recording Only/RPM; hold A exits). See the firmware guide.

Current hardware assemblies

The current kits combine shared sensor v102 with a matching mount-family v2 pair. Sidecar has separate sensor and M5 attachments; Top Mount holds the M5 above the QRE sensor. Images use the exact reviewed assembly meshes. Electronics and screws are reference envelopes, not printed parts. Explosion offsets illustrate assembly order, not a measured position on a complete launcher.

Kit Shared sensor M5 mount Current assembly
Compact QRE1113 v102 Top Mount v2 cover and dock Compact Top Mount assembly
Compact Sidecar QRE1113 v102 Sidecar v2 cover and base Compact Sidecar assembly
Standard Sidecar TCRT5000 v102 Sidecar v2 cover and base Standard Sidecar assembly

Exact print downloads

Part set STL/source package P1S PLA plate P1S PETG plate
QRE1113 v102 base, captive clips and pressure bar Package PLA No sensor PETG plate supplied
TCRT5000 v102 mount and captive clips Package PLA No sensor PETG plate supplied
Top Mount v2 cover and dock Package PLA pair PETG pair
Sidecar v2 cover and base Package PLA pair PETG pair

Choose one sensor plate and the matching mount-pair plate. These source plates are separate, not a newly sliced combined full kit. The pair plate contains both mating mount pieces. Both v2 shells are unchanged from their family's v1; existing v1 shell owners need only the matching v2 base or dock. Saved CAD, STL readback and print-project audits passed. Physical fit, snap retention, fatigue, optical alignment and absolute RPM calibration remain unverified for these current hardware combinations. Choose Settings → Mounting → Top or Sidecar to match the physical layout; display flip is a separate setting. See attribution.

Hardware versions and assembly notes identify current and historical parts. Render/download provenance and assembly validation pin the displayed geometry and source plates. All historical hardware folders and downloads remain unchanged.

Get started

  1. Choose Compact, Compact Sidecar or Standard Sidecar from the current table above.
  2. Download the sensor plate and its matching mount-pair plate, then review them for your printer and filament.
  3. Assemble an intact M5StickS3 K150 and matching analog sensor using BUILD.md or TCRT5000.md.
  4. Use the updater in desktop Chrome or Edge for firmware 0.13.5, then select the matching Sensor profile in Settings.

Update writes only the application at 0x10000 after checking the installed partition table. First install replaces the factory firmware and partition table and requires an explicit checkbox. Neither flow erases all flash. Every downloaded image is SHA-256 checked and writes use device MD5 verification. Confirm your device is specifically an M5StickS3 K150.

Hardware files

The launcher attachment derives from Migbello's BP Gear Port Connector. Preserve its attribution and share-alike notice when distributing changes.

Develop

Install Arduino CLI, then run bash scripts/build-firmware.sh. It installs the pinned ESP32 3.3.0, M5Unified 0.2.23 and M5GFX 0.2.30 dependencies and the verified full PM SDK into a project-local cache and compiles the 8 MB flash / OPI PSRAM target. Source builds may differ byte-for-byte from the archived binary across hosts/toolchains. The published binary is the exact saved release, with recorded checksum.

Run bash scripts/test-firmware.sh for 39 native C++ suites with address/undefined sanitizers and 15 production harnesses. Website development requires Node 24+:

cd site
npm ci
npm test
npm run dev
npm run build

python3 scripts/verify-artifacts.py verifies published checksums and 3MF ZIP integrity. GitHub Actions runs the native tests, updater tests and artifact checks before deploying Pages from main.

Frozen M5 firmware versions are in firmware/releases, including the working 0.3.0 QRE baseline and the separate 0.2.0 old TCRT5000 variant. The web updater recommends the 0.13.5 shared-profile application and preserves earlier selections; withdrawn 0.12.1 remains archived. Historical source snapshots retain their original layouts and notes; use each release's source rather than mixing headers across versions. Device backups, personal practice exports and factory flash dumps are excluded.

Validation scope

The current firmware passed 39 sanitizer-enabled native suites, 15 production-code harnesses, pinned target compilation and stack checks. The shipping application matches the installed device readback. The updater passes 70 tests covering known-application identities, application-only upgrades, intentional rollback, first-install consent and integrity guards.

RPM measures launcher-shaft revolutions, not direct Beyblade release RPM. Tilt replay has no measured travel distance or compass heading. Digital CAD/slicing checks establish file consistency, not printed fit or safe launch-load retention.

Software: MIT with upstream component licenses. Hardware: preserved Creative Commons Attribution Share Alike notices. See LICENSE and THIRD_PARTY_NOTICES.md.

Firmware 0.13.5 retains ten accent themes, mounted Flip mapping, the expanded main screen, five personal-best effects and optional sound. Saved mounting orientation, filtered motion activity, RESTING and CPU power management are included. Release notes.

About

Open source Beyblade X launcher-shaft RPM meter for M5StickS3 with QRE1113 or TCRT5000 sensors, printable mounts and USB firmware updater

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages