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 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.
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.
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.
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.
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.
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 & level | Launch recap | Launch history |
|---|---|---|
![]() |
![]() |
![]() |
| Ready state, held RPM result and level. | Recall the latest pull with A. | Browse pulls and session summaries. |
| Pull trend | Session trend | Battery |
|---|---|---|
![]() |
![]() |
![]() |
| 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.
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.
| 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.
- Choose Compact, Compact Sidecar or Standard Sidecar from the current table above.
- Download the sensor plate and its matching mount-pair plate, then review them for your printer and filament.
- Assemble an intact M5StickS3 K150 and matching analog sensor using BUILD.md or TCRT5000.md.
- 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.
- Current hardware kits and historical revisions, with the checksum inventory.
- Latest sensor and mount downloads, with exact source plates and STL/source packages.
- Historical v0.68 carrier, v0.50 carrier, v0.43 TCRT, v0.40 plate and v0.33 QRE remain preserved.
The launcher attachment derives from Migbello's BP Gear Port Connector. Preserve its attribution and share-alike notice when distributing changes.
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 buildpython3 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.
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.









