Bygga
제품명을 박스에 입력하면 Bygga가 3D로 모든 조립 단계와 부품·스크류·도구를 보여주고 음성으로 안내합니다
RideFlux가 전동 일체형 전동휠의 속도·배터리·온도·PWM 부하를 실시간으로 스마트폰에 표시합니다
RideFlux shows your electric unicycle's speed, battery, temperature and PWM load live on your phone, warns you before a limit, records every trip, and can drive a heads-up display on AR glasses. No ad
라이프스타일Kotlin · PythonGitHub @zero2005x온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Modern Android AR Heads-Up Display (HUD) and real-time BLE telemetry dashboard for Electric Unicycles (EUC), built with Kotlin and Jetpack Compose.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A live dashboard for electric unicycles — with an optional AR-glasses HUD.
Speed · Battery · Temperature · PWM alerts · Trip recording · Rokid HUD
English · 繁體中文 · Website · Privacy · Docs · Story · PLEV White Paper
Screenshots show sample data, not a real ride.
RideFlux connects to your electric unicycle (EUC) over Bluetooth Low Energy and shows what the wheel is doing, live, on your phone — and, if you have them, on AR glasses. Electric-scooter support is still in development (see Supported vehicles).
| ⚡ Live dashboard | Speed gauge, battery %, voltage, current, power and temperatures, plus BMS details, live charts, parameter and event pages. Automatically adapts layout for scooters and EUCs. |
| 🛡️ Safety alerts & interlock | Overspeed, over-temperature, low battery and high PWM load. Motion interlock locks risky commands until the vehicle has reported three fresh zero-speed readings. |
| 🗺️ Trip recording | Starts by itself when the vehicle starts moving. Every ride keeps its route plus speed, voltage and current. Export a trip as CSV or GPX, or back up all trips and settings to a ZIP. |
| 🥽 AR glasses HUD | An optional heads-up display on Rokid AR glasses, so you can keep your eyes up. A Bluetooth ring can show or hide it. More ↓ |
| 🎛️ Vehicle controls | Headlight, horn, speed limit, calibration and remote power-off on unicycles — where the wheel supports them. Calibration, speed limit and power-off are refused unless the wheel has reported three fresh zero-speed readings. |
| 🔒 Private by design | No internet permission, no ads, no analytics, no accounts. Everything stays on your phone unless you export it. |
| 🌍 18 languages | Follows the device language by default, with a separate language choice on phone and glasses. Includes right-to-left Arabic and Urdu. |
flowchart LR
W["🛞 Electric vehicle (EUC / Scooter)"] -- "BLE" --> P["📱 RideFlux phone app"]
P -- "BLE bridge · 1 frame / s" --> G["🥽 HUD app on Rokid glasses"]
R["💍 BLE ring"] -. "show / hide" .-> G
Hardware it is developed and tested on: a Begode A2 wheel, Rokid Glasses RV101 (standalone glasses that connect to the phone wirelessly, no cable), and an Android phone.
How the bridge works, byte by byte: docs/BRIDGE_PROTOCOL.md.
| Brand | Models | Status |
|---|---|---|
| Begode / Gotway / ExtremeBull | A2 | ✅ Verified on hardware — a few readings (trip distance, PWM) are known to be off and are being fixed |
| Other models, dual-BMS | 🧪 Experimental | |
| KingSong | — | 🧪 Experimental |
| Veteran | Sherman, Abrams, Patton, Lynx, Oryx, Nosfet | 🧪 Experimental |
| Ninebot | One, E+, S2, Mini · Z, ZT, KickScooter Z | 🧪 Experimental |
| Inmotion | V5, V8, V10 · V9, V11, V12, V13, V14 | 🧪 Experimental |
| Category | Brand / Lineage | Status |
|---|---|---|
| Scooter | Ninebot Retail (KickScooter ES2 is the reference model) | 🚧 In development — frame codec, pairing state machine and B0 telemetry are written from reverse-engineering notes. Never connected to a real scooter. Pairing and lock stay blocked in the app until a per-model stationary-speed source is verified |
| Scooter | Xiaomi M365 | 🧪 Experimental, read-only vehicle registers — L2 written protocol/crypto specifications plus hardware-log regression fixtures. FE95 authentication and encrypted B0 telemetry already implemented; all 12 writable registers remain NotYetEnabled. The expanded community register inventory is L1 and requires explicit Experimental opt-in. See T07 evidence and gaps. |
| Smart BMS | JBD / Xiaoxiang & Ant BMS | 🧪 Packet decoders (read-only) |
| Controller | VESC | 🧪 Telemetry decoder (read-only) |
The wire formats and GATT layouts behind each family: docs/PROTOCOLS.md & PLEV White Paper.
| 📱 Phone app | Google Play — Android 9 (API 28) or later. |
| 🥽 Glasses HUD app | An APK on GitHub Releases, for sideloading on Rokid glasses (developed and tested on the Rokid Glasses RV101). |
| 📖 The story | Why and how RideFlux was built — see the section below. |
| 🛠️ From source | See docs/BUILDING.md. |
./gradlew :app:assembleDebug # phone APK
./gradlew :hud-app:assembleDebug # glasses APK
./gradlew test # JVM unit tests
Built with Kotlin, Jetpack Compose, Hilt, Room and DataStore. You need JDK 17 or 21; newer JDKs are not verified.
A long-form write-up of how the project came to be: why it is not a WheelLog fork, how the Bluetooth protocols were decoded and which bugs real frames exposed, how the phone talks to the glasses, and what is verified and what is not. It was first published on Medium in December 2025 and has been updated for what RideFlux is today. It is written in English.
INTERNET permission, so it cannot send anything off your phone.Full text: PRIVACY.md.
The technical reference that used to fill this README now lives in docs/, word for word.
| Document | What is in it |
|---|---|
| Architecture | Module layering, design rules, repository layout |
| Wheel protocols | Wheel families, GATT topologies, where the protocol knowledge comes from |
| Phone ↔ glasses bridge | Pairing token, startup ordering, scan budget, frame layout |
| Localization | The 18 translations, the coverage test, how to add a string or a language |
| Building & releasing | JDK and SDK, signing and secrets, tests, Sonar, dependency verification |
| Play Store assets | Store graphics and the scripts that regenerate them |
| Website | The GitHub Pages site in site/ and how it is built |
| Articles | Long-form writing about the project; the website's /story/ page is rendered from the article here |
RideFlux is an independently developed third-party application. It is not affiliated with, endorsed by, or sponsored by any of the wheel manufacturers or Rokid named above; those names are trademarks of their owners and appear only to say which products RideFlux can talk to. Pay attention to the road while you ride and do not operate your phone while riding.
Distributed under the GNU General Public License v3.0 or later. Source files carry
SPDX-License-Identifier: GPL-3.0-or-later. See LICENSE for the full text.
The RideFlux project contributors, as the copyright holders of the RideFlux source code, grant the following additional permission under section 7 of the GNU General Public License, version 3. It applies to the RideFlux source code in this repository; the GPL applies unchanged otherwise.
If you modify this Program, or any covered work, by linking or combining it with the Rokid CXR SDK libraries (
com.rokid.cxr:client-mandcom.rokid.cxr:cxr-service-bridge) (or a modified version of those libraries), containing parts covered by the terms under which Rokid provides them, the licensors of this Program grant you additional permission to convey the resulting work.
This permission does not:
NOTICE);NOTICE, which stays under its own license.As section 7 of the GPL allows, you may remove this additional permission from your copy of the Program, or from any part of it.
Some protocol test data comes from WheelLog, and the Rokid CXR SDK is Rokid's own software. Credits and terms are in NOTICE.