User guide

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.

Section 1

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.

PartWhat 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).
Throughout this guide A is the main button and B is the side button.
M5Stick-S3
M5Stick-S3 — EucBuddy runs on it
Section 2

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.

Too many devices listed? Turn on Only EUC in the menu to show only recognised wheels (Section 6).
EucBuddy works with Begode/Gotway, KingSong, Veteran/Leaperkim, Nosfet and InMotion wheels — it detects the brand automatically and decodes each one's telemetry. Each brand gets its own accent colour on the dashboard.
Section 3

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.

ActionHow
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.

Favorites are remembered across power-offs and firmware updates, and a favorite stays visible on the scan list even with Only EUC on.
Section 4

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 configureCustom 3 (three values) and Custom 1 (one value) — under Dashboard setupDashboard config (Section 6). Each screen is the same idea — a different headline value:

Dashboard screen

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).
Custom 3 screen, showing PWM

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 setupDashboard config or in the WiFi panel; short B = your Short B action (headlight by default).
Power screen

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.
Trip screen

4 · Trip — distance

  • RIDE — distance of the current ride.
  • TRIP — resettable counter.
  • Press B to reset the trip (confirm popup).
Stats screen

5 · Stats — per-wheel stats

  • TOTAL — wheel odometer.
  • Ride count, top speed and peak current.
  • Press B to clear the peaks (confirm popup).
Custom 1 screen

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.

WheelPWM value
InMotion V2 (V11/V12/V13/V14)Exact (from the wheel)
Veteran / Leaperkim / NosfetExact (from the wheel)
Begode / GotwayExact on models that send it, otherwise needs calibration
KingSong · classic InMotionNeeds 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.

The top-right of every screen shows EucBuddy's own battery (in % or V — your choice in the Battery menu).
All six ride screens share one background tint — Black, Pink, Blue, Green, Teal or Yellow, all kept deliberately near-black so the telemetry stays readable. Pick it under Dashboard setupBackground, or in the WiFi panel.
Section 5

Button cheat-sheet

WhereButtonAction
Scan screenA shortNext wheel in the list
B shortConnect to highlighted wheel
B holdStar / unstar the wheel (favorite)
A holdOpen the main menu (carousel)
Ride screensA shortNext screen (default: Dashboard → Custom 3 → Power → Trip → Stats → Custom 1)
B shortOn Dashboard/Custom 3/Power/Custom 1: your Short B action — headlight (default) or horn · on Trip/Stats: reset (confirm popup)
B holdYour 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 shortNext icon (Dashboard · MyBuddy · Rides · My Wheels · Blackbox · Alerting · Dashboard setup · Settings · Info · Disconnect when connected)
B shortOpen the highlighted item
A holdBack to where you were
My WheelsA shortList: next wheel · detail: next row
B shortList: open the wheel · detail: open EUC health / its rides / adjust calibration (+) / clear
B holdDetail (Spin/Volt row): fast-adjust the calibration value
A holdBack (detail → list → carousel)
EUC healthA shortScroll the health rows
B shortAsk the connected wheel for a fresh reading
A holdBack to the wheel's detail screen
Settings listA shortNext item
B shortSelect / change value
A holdBack
Rides viewerA shortScroll the ride list · in details: next page
B shortOpen / close a ride's details
B holdDelete (list: all rides · details: this ride) — confirm popup
MyBuddyB shortPet your buddy
Any popupB / AB = yes/confirm · A = cancel
AnywherePWRTurn on / wake from sleep
The inactivity timer (auto-sleep) is reset only by a button press — not by riding. So the device won't sleep while you're tapping on it.
Section 6

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:

IconOpens
DashboardBack to the live ride screens (or the scan list when no wheel is connected).
MyBuddyThe virtual-pet screen (Section 7).
RidesThe Rides viewer — your stored ride history (Section 11).
My WheelsYour favorite wheels — per-wheel rides, lifetime totals and PWM calibration (see below).
BlackboxBattery-map logging — records a battery curve to the device (see below).
AlertingSpeed limiter + on-device warning beeps (see below).
Dashboard setupRide-screen button actions, the two Custom dashboards, background tint, units and temperature unit.
SettingsGeneral device, connection and power options.
InfoDevice ID, firmware version, power-on counter, lifetime ride count and battery. The power-on counter survives a factory reset (a true lifetime total).
DisconnectDrops 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.

OptionWhat it does
Press BAction for a short B press on Dashboard / Custom 3 / Power / Custom 1: Light (default) or Horn.
Long press BAction 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).
BackgroundThe 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.
Unitskm 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).

RowFillsDefault
Custom 1The single big value on the Custom 1 screen (6th by default).Speed
Custom 3 mainThe large left-hand value on Custom 3 (2nd by default).PWM
Custom 3 upperThe small upper-right value on Custom 3.Speed
Custom 3 lowerThe 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.

OptionWhat it does
BrightnessScreen brightness — 3 levels.
Flip screenRotates the screen 180° — for mounting EucBuddy upside-down. The buttons keep working as labelled.
Intro animPlays the animated startup splash (on by default). Turn it off for a quicker turn-on — cold boot goes straight to the scan screen.
SoundSounds on / off.
Auto-sleepInactivity timeout: 30 s / 1 min / 2 min / 5 min / Off.
Sleep typeNew. 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 EUCScan filter — show only recognised wheels (recommended: on).
BatteryWhat to show top-right for EucBuddy's battery: percent (%) or voltage (V).
WiFiOff / Session (until power-off) / Always. Starts the config hotspot — Section 8.
Begode VBegode pack voltage (67–168 V). Set it to match your wheel so the displayed voltage is correct.
Factory resetRestores defaults and erases all stored rides. Opens a confirm popup (B = yes).
Power offTurns the device off.
Disconnect is no longer in this list — it lives on the carousel, and only while a wheel is connected.
The Units option in Dashboard setup flips every speed and distance on every screen between kilometres and miles instantly — nothing else changes. It's also in the WiFi panel; storage stays metric internally.

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:

RowWhat it does
NameThe 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.
VendorThe detected brand (display only), in the brand's accent colour.
EUC healthA one-word verdict — Good, Fault or Unknown — for what this wheel reports about itself. Press B to open the full health screen (below).
RidesThis 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.
SpinPWM-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).
VoltPWM-calibration voltage — the pack voltage the spin speed was measured at, 10–180 V. Same B / hold-B editing.
Clear calibPress 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.

RowShows
OverallThe summary verdict: Good, Fault or Unknown.
ControllerController status and its temperature.
HallHall-sensor status.
Battery · BMS 1 / 2Per-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:

OptionWhat it does
Battery mapLogging on / off.
SourceHost (EucBuddy's own battery) or Wheel (the connected wheel). Switching clears the file.
Delete logErases 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.

OptionWhat it does
LimiterMaster 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 alertWhile 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 limitThe hard-cap value the limiter writes to the wheel, in km/h (5 km/h steps).
Speed alertBeep when your speed reaches the threshold, plus Speed val — the threshold.
PWM alertBeep when the motor load (PWM) reaches the threshold, plus PWM val — the threshold.
Batt alertBeep when the wheel battery drops to the threshold, plus Batt val — the threshold.
Alerting menu
Alerting menu

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:

82% 50 24 km/h
✕ Cross — offThe Limiter switch is off (the default). Holding B does nothing; the number shows the wheel's own max-speed limit.
82% 50 24 km/h
Grey gauge — readyThe limiter is enabled but not armed — the number still shows the wheel's max. Hold B to arm your cap (high two-tone beep).
82% 25 24 km/h
Green gauge — limitingThe cap is armed — the number is now your Speed limit (25 km/h), active on the wheel. Hold B again to restore the wheel's original max (low two-tone beep).
The speed limiter works on Begode/Gotway, KingSong and supported modern Leaperkim/Veteran and Nosfet wheels. On a Leaperkim/Nosfet wheel EucBuddy enables it only when the current tilt-back and alarm values can be read and restored safely; otherwise arming is blocked. Unsupported wheels hide the indicator and hold-B does nothing. The limiter changes the wheel's own max-speed / tilt-back setting — treat it exactly as you would that setting in the official app.
Begode note: stock wheel firmware offers fixed alarm presets, not a numeric in-wheel speed-warning threshold. The Begode app's configurable “speed reminder” is generated by the phone, so Wheel alert leaves Begode alarm presets untouched.
The EucBuddy Speed / PWM / Batt warning beeps are device-side only — they never change the wheel. When one fires a blinking red letter appears on the top bar (S speed · P PWM · B battery); if several are active they take turns. Being safety warnings, they still sound when Sound is off, and they follow the wheel's real telemetry regardless of the km / miles setting.
Every destructive action uses the same confirm popupB = yes, A = cancel. That covers trip / peak resets, deleting rides, deleting the battery log and factory reset.
Section 7

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.
MyBuddy screen
MyBuddy screen
Section 8

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.

StepDo this
1In the menu set WiFi to Session or Always. A WiFi icon appears on the top bar — it turns green once a phone is connected.
2On your phone join the EucBuddy-XXXX network (open, no password).
3The 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.

Session = WiFi runs until the next power-off, then starts off. Always = starts on every boot. Note: WiFi and Bluetooth share one antenna, so telemetry may refresh a little slower while WiFi is active.
Section 9

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.

SituationBehaviour
Press A or BContinues to a normal boot (pairing / riding).
Unplug the cableThe device powers off.
While chargingAuto-sleep is disabled — it won't switch off on its own.
Charging during normal use (device already on) works fine — the charging screen only appears when starting from the off state.
Section 10

Battery, sleep & power-off

Device battery

Sleep & wake

Power off

Section 11

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

In the WiFi panel

Rides are kept across power-offs and firmware updates (room for tens of thousands). They're erased only by Delete all rides or a Factory reset.
Section 12

Firmware updates

New firmware adds wheel support and features. Updating happens in your browser — no software to install.

StepDo this
1Open the flasher page in Chrome or Edge (on a computer).
2Connect EucBuddy with a USB-C cable.
3Click and follow the prompts — the rest is automatic.

Your settings and remembered wheel are kept across updates.

Open the web flasher →

Updating in the browser
Updating in the browser
Section 13

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 setupDashboard 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.