EucBuddy — User Manual
Everything you need to use your EucBuddy — buttons, favorite wheels, the six ride screens, the full menu, MyBuddy, ride history, the WiFi panel, charging and updates. Simple and clear.
Device & buttons
EucBuddy runs on a small M5Stick-S3 with a screen, a battery and a USB-C port. It's driven by two buttons plus a power button.
| Part | What it does |
|---|---|
| A Main button | Large front button. Short press = next / select; hold ~1 s = open menu. |
| B Side button | Small side button. Short press = confirm / back (context-dependent, e.g. headlight, horn or trip reset — the ride-screen action is configurable, see Section 6). |
| PWR Power | Side button. Turns on and wakes the device from sleep. Power-off is done from the menu. |
| USB-C | Charging. Plugging into a powered-off device opens the charging screen (Section 9). |

First start & pairing
1 · Turn it on
Press PWR. After the splash you'll see the scan screen with an animated radar — EucBuddy is looking for nearby wheels.
2 · Pick your wheel
Found wheels appear in a list (the "SCAN (n)" counter is at the top). Press A to move between entries.
3 · Connect
Press B to connect to the highlighted wheel. EucBuddy remembers it and will reconnect automatically next time.
Favorite wheels
Star the wheels you ride so they're always easy to find. Favorites jump to the top of the scan list and get a star ★. You can have as many as you like.
| Action | How |
|---|---|
| Add / remove a star | On the scan list, hold B on the highlighted wheel (high beep = starred, low = unstarred). Hold again to remove. |
| Give it a name | In the WiFi panel's Favorite EUC section (Section 8) type a custom name next to the wheel's Bluetooth name. |
A custom name then shows in place of the Bluetooth name on the scan list, and top-left on the Dashboard instead of the vendor (e.g. "My Sherman" instead of "Veteran"). Long names scroll by themselves on the highlighted row.
The six ride screens
Once connected, a short press of A cycles six screens (default order): Dashboard → Custom 3 → Power → Trip → Stats → Custom 1 and back. You can reorder them or hide ones you don't use in the WiFi panel (Section 8). Two of the six are yours to configure — Custom 3 (three values) and Custom 1 (one value) — under Dashboard setup → Dashboard config (Section 6). Each screen is the same idea — a different headline value:

1 · Dashboard — live ride
- Big speed (colour shifts cyan → yellow → red).
- Wheel battery %, voltage and current.
- A short press of B runs your Short B action — headlight by default (if your wheel supports it), or horn. Set it under Dashboard setup (Section 6).

2 · Custom 3 — three values, your choice
- One big value on the left, two small ones stacked on the right — you pick all three.
- Out of the box it's the classic PWM safety screen: PWM % big (how hard the motor works; near 100 % = near a cut-out) with speed and voltage beside it. green <80 · yellow 80–90 · red 90+ (back off).
- Change any slot under Dashboard setup → Dashboard config or in the WiFi panel; short B = your Short B action (headlight by default).

3 · Power — battery & output
- Tall battery gauge and percentage down the left, with voltage and watts below it.
- Current is the hero on the right — pink when drawing, cyan on regen — over a slim 0–100 A load bar.
- Speed and temperature sit in the footer.

4 · Trip — distance
- RIDE — distance of the current ride.
- TRIP — resettable counter.
- Press B to reset the trip (confirm popup).

5 · Stats — per-wheel stats
- TOTAL — wheel odometer.
- Ride count, top speed and peak current.
- Press B to clear the peaks (confirm popup).

6 · Custom 1 — one value, your choice
- A single value, big and centred — you pick which.
- Speed, battery, voltage, current, power, temp, PWM, trip, ride or total.
- Set via Dashboard config in Dashboard setup or the WiFi panel; short B = your Short B action (headlight by default).
PWM — which wheels report it
Some wheels send their real motor duty over Bluetooth — there you see the exact figure, tagged plainly “PWM”. Wheels that don't report it now show no PWM at all by default: the value reads “--” with a “set calib” prompt. Give that wheel a one-time PWM calibration in My Wheels (Section 6) and EucBuddy then estimates the duty from speed and voltage, tagged “PWM est” — a useful guide, not a precise gauge.
| Wheel | PWM value |
|---|---|
| InMotion V2 (V11/V12/V13/V14) | Exact (from the wheel) |
| Veteran / Leaperkim / Nosfet | Exact (from the wheel) |
| Begode / Gotway | Exact on models that send it, otherwise needs calibration |
| KingSong · classic InMotion | Needs calibration (then shown as “PWM est”) |
Until a wheel that can't report PWM is calibrated, every PWM readout — on Custom 3, on Custom 1 — stays “--”, and the PWM alert won't fire for it.
Button cheat-sheet
| Where | Button | Action |
|---|---|---|
| Scan screen | A short | Next wheel in the list |
| B short | Connect to highlighted wheel | |
| B hold | Star / unstar the wheel (favorite) | |
| A hold | Open the main menu (carousel) | |
| Ride screens | A short | Next screen (default: Dashboard → Custom 3 → Power → Trip → Stats → Custom 1) |
| B short | On Dashboard/Custom 3/Power/Custom 1: your Short B action — headlight (default) or horn · on Trip/Stats: reset (confirm popup) | |
| B hold | Your Hold B action — Speed limiter (arm / restore the cap on Begode, KingSong and supported modern Leaperkim/Nosfet wheels; enable Limiter first), Horn or headlight; Section 6 | |
| Main menu (carousel) | A short | Next icon (Dashboard · MyBuddy · Rides · My Wheels · Blackbox · Alerting · Dashboard setup · Settings · Info · Disconnect when connected) |
| B short | Open the highlighted item | |
| A hold | Back to where you were | |
| My Wheels | A short | List: next wheel · detail: next row |
| B short | List: open the wheel · detail: open EUC health / its rides / adjust calibration (+) / clear | |
| B hold | Detail (Spin/Volt row): fast-adjust the calibration value | |
| A hold | Back (detail → list → carousel) | |
| EUC health | A short | Scroll the health rows |
| B short | Ask the connected wheel for a fresh reading | |
| A hold | Back to the wheel's detail screen | |
| Settings list | A short | Next item |
| B short | Select / change value | |
| A hold | Back | |
| Rides viewer | A short | Scroll the ride list · in details: next page |
| B short | Open / close a ride's details | |
| B hold | Delete (list: all rides · details: this ride) — confirm popup | |
| MyBuddy | B short | Pet your buddy |
| Any popup | B / A | B = yes/confirm · A = cancel |
| Anywhere | PWR | Turn on / wake from sleep |
Menu — every option
Hold A from any screen to open the main menu — an animated carousel of icons. A moves between them, B opens the one in the middle, holding A takes you back. The item you're already on is hidden, so you only see where you can go:
| Icon | Opens |
|---|---|
| Dashboard | Back to the live ride screens (or the scan list when no wheel is connected). |
| MyBuddy | The virtual-pet screen (Section 7). |
| Rides | The Rides viewer — your stored ride history (Section 11). |
| My Wheels | Your favorite wheels — per-wheel rides, lifetime totals and PWM calibration (see below). |
| Blackbox | Battery-map logging — records a battery curve to the device (see below). |
| Alerting | Speed limiter + on-device warning beeps (see below). |
| Dashboard setup | Ride-screen button actions, the two Custom dashboards, background tint, units and temperature unit. |
| Settings | General device, connection and power options. |
| Info | Device ID, firmware version, power-on counter, lifetime ride count and battery. The power-on counter survives a factory reset (a true lifetime total). |
| Disconnect | Drops the wheel and goes back to scanning. Only appears while a wheel is connected, and the carousel opens centred on it so it's the first thing offered. |
Dashboard setup
Choose Dashboard setup from the carousel to configure how ride screens behave. Press A to move and B to change a value. The list shows a few rows at once and scrolls as you move through it.
| Option | What it does |
|---|---|
| Press B | Action for a short B press on Dashboard / Custom 3 / Power / Custom 1: Light (default) or Horn. |
| Long press B | Action for holding B on a ride screen: Speed limit (default), Horn or Light. |
| Dashboard config > | Opens a submenu that assigns a telemetry value to each Custom slot (see below). |
| Background | The shared backdrop tint for all six ride screens — Black, Pink, Blue, Green, Teal or Yellow. Live swatches sit in the row, so you can see what you're picking. Every tint is deliberately near-black and flat so the telemetry stays crisp. |
| Units | km or miles — converts every speed and distance on screen. MyBuddy is exempt — Section 7. |
| Temp unit | °C or °F — switches every temperature reading on screen. |
Dashboard config — the two Custom screens
Four rows, one per slot. B steps each one through the same list of values: speed, battery, voltage, current, power, temp, PWM, trip, ride or total (odometer).
| Row | Fills | Default |
|---|---|---|
| Custom 1 | The single big value on the Custom 1 screen (6th by default). | Speed |
| Custom 3 main | The large left-hand value on Custom 3 (2nd by default). | PWM |
| Custom 3 upper | The small upper-right value on Custom 3. | Speed |
| Custom 3 lower | The small lower-right value on Custom 3. | Voltage |
Leaving the defaults alone gives you exactly the old fixed PWM screen. Whenever PWM sits in the Custom 3 main slot it keeps its safety colours and the set calib / PWM est tags described in Section 4. All four slots are also in the WiFi panel.
Settings
From the carousel pick Settings. Move with A, change with B. Names match the on-screen labels.
| Option | What it does |
|---|---|
| Brightness | Screen brightness — 3 levels. |
| Flip screen | Rotates the screen 180° — for mounting EucBuddy upside-down. The buttons keep working as labelled. |
| Intro anim | Plays the animated startup splash (on by default). Turn it off for a quicker turn-on — cold boot goes straight to the scan screen. |
| Sound | Sounds on / off. |
| Auto-sleep | Inactivity timeout: 30 s / 1 min / 2 min / 5 min / Off. |
| Sleep type | New. What that timeout does while connected to a wheel: Power save (screen off, keeps logging the ride) or Power off (full shutdown, reconnects on wake). Disconnected, it always powers off. |
| Only EUC | Scan filter — show only recognised wheels (recommended: on). |
| Battery | What to show top-right for EucBuddy's battery: percent (%) or voltage (V). |
| WiFi | Off / Session (until power-off) / Always. Starts the config hotspot — Section 8. |
| Begode V | Begode pack voltage (67–168 V). Set it to match your wheel so the displayed voltage is correct. |
| Factory reset | Restores defaults and erases all stored rides. Opens a confirm popup (B = yes). |
| Power off | Turns the device off. |
My Wheels — favorite wheels & PWM calibration
The carousel's My Wheels icon lists every wheel you've starred (Section 3). If you haven't starred any yet, it prompts you to hold B on a wheel in the scan list. A moves down the list, B opens the highlighted wheel; a small green dot marks wheels that already have a PWM calibration. Each wheel's detail screen shows:
| Row | What it does |
|---|---|
| Name | The heading shows the wheel's given (custom) name when you've set one (Section 3), otherwise its Bluetooth name; a BT line just below always shows the real Bluetooth name, so both are visible at once for a renamed wheel. |
| Vendor | The detected brand (display only), in the brand's accent colour. |
| EUC health | A one-word verdict — Good, Fault or Unknown — for what this wheel reports about itself. Press B to open the full health screen (below). |
| Rides | This wheel's lifetime ride count — a running total that survives deleting individual rides and is cleared only by a factory reset. Press B to open a rides list filtered to just this wheel. |
| Spin | PWM-calibration spin speed — the wheel's no-load “spin” (lift-up) speed, 20–150 km/h. B steps +0.5; hold B to fast-adjust (wraps at the top). |
| Volt | PWM-calibration voltage — the pack voltage the spin speed was measured at, 10–180 V. Same B / hold-B editing. |
| Clear calib | Press B to remove this wheel's calibration (back to no PWM estimate). |
Why calibrate? Wheels that don't report their real motor duty (KingSong, classic InMotion, older Begode) show no PWM until you set the two values above — then EucBuddy estimates the duty from live speed and voltage using your wheel's calibration values (marked “PWM est” on the Custom 3 screen). Wheels that already send real PWM don't need this. Calibration is stored per wheel, kept across power-offs and updates, and can also be set from the WiFi panel's Favorite EUC section (Section 8). Editing it while that wheel is connected updates the live estimate at once.
EUC health
Open the EUC health row of a wheel's detail screen to see the diagnostics that wheel broadcasts about itself. A scrolls the rows, B asks the connected wheel for a fresh reading, holding A goes back.
| Row | Shows |
|---|---|
| Overall | The summary verdict: Good, Fault or Unknown. |
| Controller | Controller status and its temperature. |
| Hall | Hall-sensor status. |
| Battery · BMS 1 / 2 | Per-pack status, cell count, the lowest and highest cell voltage and the pack's max temperature. Cells outside 2.50–4.25 V, a spread over 0.15 V, or a temperature outside −20…80 °C read as a fault. |
The header says HEALTH LIVE when the wheel is connected right now and HEALTH LAST when you're looking at the last snapshot EucBuddy saw — dimmed, so you can tell at a glance. Anything the wheel simply never sends stays Unknown rather than pretending to be OK; how much you see depends entirely on how talkative your wheel is.
Blackbox — battery map
The carousel's Blackbox icon opens a small logger that records a battery curve to the device (about one row per second — handy for tuning). Inside:
| Option | What it does |
|---|---|
| Battery map | Logging on / off. |
| Source | Host (EucBuddy's own battery) or Wheel (the connected wheel). Switching clears the file. |
| Delete log | Erases the log (confirm popup). The header shows the file size and free space. |
Download the CSV from the WiFi panel (Section 8).
Alerting — speed limiter & warning beeps
The carousel's Alerting icon groups the speed limiter and the on-device warning beeps. Move with A, change with B.
| Option | What it does |
|---|---|
| Limiter | Master on / off for the speed limiter — off by default. While off, holding B won't arm the cap and the top-bar glyph shows a cross. Turn it on to use the limiter. |
| Wheel alert | While the limiter is armed, also set the wheel's own speed warning to 1 km/h below the cap. Available for KingSong and supported modern Leaperkim/Nosfet wheels. This row is grey and cannot be changed while Limiter is off. |
| Speed limit | The hard-cap value the limiter writes to the wheel, in km/h (5 km/h steps). |
| Speed alert | Beep when your speed reaches the threshold, plus Speed val — the threshold. |
| PWM alert | Beep when the motor load (PWM) reaches the threshold, plus PWM val — the threshold. |
| Batt alert | Beep when the wheel battery drops to the threshold, plus Batt val — the threshold. |

Speed limiter (hard cap)
First turn on Limiter — it's off by default. Then, on any ride screen (Dashboard, Custom 3, Power, Trip, Stats or Custom 1), hold B to arm the cap. If the wheel is already stationary, EucBuddy writes and verifies your Speed limit. If you request it while riding, it confirms the request, makes the limiter gauge blink green, and waits until the wheel has been stopped for about three seconds before writing it. A second confirmation beep means the cap was verified. If verification still fails after one retry while stopped, EucBuddy cancels the request and restores the original settings. Hold again after it is armed to restore the wheel's original max. EucBuddy saves the wheel's current limit before changing it, so disabling the limiter restores the rider's original setting.
If Wheel alert is on, arming also moves the supported wheel's own warning threshold to cap minus 1 km/h. KingSong's three alarm thresholds are moved together; Leaperkim/Nosfet use their separate speed-alarm setting. EucBuddy saves every affected value first and restores each one exactly when the limiter is released. Changing the option or cap while armed keeps the original snapshot safe.
The horn is a momentary wheel command, not a saved wheel setting. It is supported on Begode/Gotway, KingSong, Veteran/Leaperkim, Nosfet and InMotion; on an unsupported wheel the action simply does nothing. EucBuddy plays a short local confirmation cue as well.
The top-bar limiter glyph
A small glyph and number sit on the top bar, just left of EucBuddy's own battery. The number is the wheel's current max-speed limit in km/h (a dash while it's being read, ∞ if the wheel has no limit set); the glyph shows the state. When you arm the cap, the number becomes your Speed limit value:
MyBuddy — your virtual pet
MyBuddy is a little pet living inside your EucBuddy. Open it from the menu (MyBuddy).
- B — pet your buddy (it reacts).
- Your buddy grows as you ride — it feeds on zaps (1 zap = 1 km), so it counts the same whether your screen is set to km or miles.
- When two EucBuddies are close, their pets can "greet" each other over infrared.
- Give it a name in the WiFi panel (Section 8) — it shows top-left on the pet screen.
- Hold A for the menu, then Dashboard to ride.

WiFi config panel
EucBuddy can host its own WiFi hotspot with a config panel in your phone's browser — every setting with a bigger screen and a keyboard. WiFi is off by default.
| Step | Do this |
|---|---|
| 1 | In the menu set WiFi to Session or Always. A WiFi icon appears on the top bar — it turns green once a phone is connected. |
| 2 | On your phone join the EucBuddy-XXXX network (open, no password). |
| 3 | The panel opens automatically (like hotel WiFi). If not, browse to 192.168.4.1. |
In the panel you can set: battery / device ID / firmware (read-only), the MyBuddy name, brightness, sound, auto-sleep, Only-EUC, battery readout (% / V), flip screen, Begode voltage, battery-map logging (with the CSV download — Section 6), and a power-off button.
The Dashboard setup card matches the device menu: configure Short-tap B, Hold-B, what Custom 1 shows, all three Custom 3 slots (main / upper / lower), the dashboard background, units, and the temperature unit in one place.
The Speed limiter & alerts card mirrors the device's Alerting menu: master limiter, cap, EucBuddy speed/PWM/battery warnings and the optional in-wheel speed warning. That last switch is greyed out until the limiter master is enabled; changing it while the cap is armed uses the same safe save-and-restore behavior described in Section 6.
It also has a Favorite EUC section: give each favorite a custom name (next to its Bluetooth name), set its PWM calibration (spin km/h + volt V — the same values as the on-device My Wheels screen, Section 6), or remove a favorite with the ✕ button. See Section 3.
A Dashboards section lets you drag the six ride screens into the order you want and untick any you don't use — the device's screen cycle and dots update to match (at least one stays on). The default order is Speed → Custom 3 → Power → Trip → Stats → Custom 1 (“Speed” is the main Dashboard). What the two Custom screens actually show is set in the Dashboard setup card described above.
And a Rides section with your full ride history: tap any ride to see its details, edit values by hand, add a ride, delete one, or download everything as CSV. See Section 11.
Charging
Plugging USB-C into a powered-off device opens a dedicated charging screen: a battery animation, the percentage and the voltage, dimmed so it can sit on a desk.
| Situation | Behaviour |
|---|---|
| Press A or B | Continues to a normal boot (pairing / riding). |
| Unplug the cable | The device powers off. |
| While charging | Auto-sleep is disabled — it won't switch off on its own. |
Battery, sleep & power-off
Device battery
- EucBuddy's battery is shown top-right (% or V — the Battery option).
- The percentage is a smoothed estimate tuned to the battery's real discharge curve, so it stays steady and counts down evenly instead of jumping around or dropping fast under load.
- At a low level the device beeps a warning.
- At a critically low level it powers off with a "battery depleted" notice (except on the charging screen) — plug in USB-C.
Sleep & wake
- After the inactivity timeout (Auto-sleep) the device sleeps. Only a button press resets the timer.
- Wake it with the PWR button.
- If it sleeps while connected to a wheel, it tries to reconnect on wake and resume your trip without resetting the counter.
- It also comes back to the ride screen you were last on — not the first one — after a connected sleep or reconnect. (If you'd since hidden that screen, it falls back to the first one.)
Power off
- Menu → Power off, or from the WiFi panel.
Rides — your ride history
EucBuddy logs every ride automatically. Each entry records the wheel, start & end battery, the voltage range (min–max), top speed, peak current, max PWM (highest motor load — see Section 4), distance, the odometer at the start, how many times the device slept mid-ride, and the max temperature. A ride is saved whenever you disconnect or the wheel goes out of range.
On the device — the Rides viewer
- Open it from the carousel (Rides). It works like MyBuddy — a separate screen.
- A scrolls the list (newest first); B opens a ride's details (shown three fields at a time — press A to flip pages, B to close).
- Hold B to delete — all rides from the list, or this ride when its details are open (each asks to confirm). Hold A for the main menu.
In the WiFi panel
- The Rides section lists everything with room to scroll back through older rides.
- Tap a ride for a details pop-up; edit any value by hand, add a ride manually, or delete one.
- Download CSV to keep or analyse your whole history on a computer.
Firmware updates
New firmware adds wheel support and features. Updating happens in your browser — no software to install.
| Step | Do this |
|---|---|
| 1 | Open the flasher page in Chrome or Edge (on a computer). |
| 2 | Connect EucBuddy with a USB-C cable. |
| 3 | Click and follow the prompts — the rest is automatic. |
Your settings and remembered wheel are kept across updates.

FAQ
My wheel isn't in the list
Make sure it's on and nearby. If the list is cluttered, enable Only EUC. Re-detection can take a few seconds.
A wheel shows up as "EUC"
Some wheels (Begode and other HM-10 modules) broadcast their name a moment after they first appear, so they read EUC until the name arrives, then fill in. EucBuddy remembers names it has already seen, so this is brief. ★ Star the wheel to always show its name.
The voltage looks wrong (Begode)
Set Begode V in the menu to match your wheel's pack voltage (e.g. 84 V, 100 V, 134 V). Newer Begodes with a smart BMS report their true voltage automatically and don't need this.
The headlight doesn't respond
Toggle the light on any ride screen except Trip and Stats with B, on wheels that support it (KingSong, Begode, Veteran, Nosfet, InMotion).
The device keeps switching off
That's auto-sleep. Increase the time or turn it off in Auto-sleep. Sleep is disabled while charging.
The WiFi panel won't open
Browse to 192.168.4.1 manually. On some phones, turning off "Private DNS" helps.
PWM shows "--" or "set calib"
Your wheel doesn't report PWM directly, so EucBuddy can't show it until you give the wheel a one-time PWM calibration in My Wheels (spin speed + voltage — Section 6). After that it estimates the duty from speed and voltage, tagged "PWM est" — a useful guide, not exact. Wheels that do report PWM (many Veteran, Begode, InMotion) show the precise value with no tag and need no calibration.
Where did the PWM screen go?
Nowhere — it's now called Custom 3, and out of the box it shows exactly what it always did (PWM big, speed and voltage beside it). The difference is that you can now swap any of those three values for something else under Dashboard setup → Dashboard config (Section 6).
How do I disconnect from my wheel?
Hold A for the menu — while a wheel is connected the carousel opens right on Disconnect, so it's one press of B away. It used to live in Settings.
Where are my rides?
On the device: menu → Rides. With more room: the Rides section of the WiFi panel, where you can also edit, add, delete and export them (Section 11).
Questions? Message us on facebook.com/eucbuddy — happy to help.