User guide

EucBuddy — User Manual

Everything you need to use your EucBuddy — buttons, favorite wheels, the six ride screens, the full menu, MyBuddy, the weather screen, 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, wakes from sleep — and a press while the device is running switches it off (the menu's Power off does the same). Section 11.
USB-C Charging. Plugging into a powered-off device opens the charging screen (Section 10).
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.

Through the EUC World app

A phone running EUC World can hand its telemetry on over Bluetooth, so EucBuddy can ride along with a wheel it has no decoder of its own for. Turn the app's BLE server on and it appears in the scan list as EUC World …; connect to it exactly like a wheel.

  • You get speed, wheel battery, distance, temperature and the energy used — rides are logged just like any other.
  • The app's link doesn't carry pack voltage, current or PWM, so those read “--” (and no odometer total, since the count is the app's ride, not the wheel's life).
  • EucBuddy only ever listens here — the headlight, horn and speed limiter need a direct link to the wheel and do nothing over this one.
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 9) 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 9). 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. The watts are what the pack is actually delivering, and take the same colours as the current below — pink drawing, cyan on regen.
  • 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, total, ride time or energy used.
  • 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.

Ride time & energy — two new values

Any Custom slot can now show TIME — how long the current ride has been running, as mm:ss, rolling over to h:mm:ss once a ride passes the hour — or ENERGY — how many watt-hours this ride has taken out of the wheel's pack. Pick them like any other value under Dashboard setupDashboard config, or in the WiFi panel.

  • Both count only while the wheel is connected. A disconnect, a drop-out or a full power-off simply pauses them — EucBuddy never guesses what happened while it wasn't listening.
  • They survive sleep and reconnect: Power save keeps counting with the screen off, and Power off resumes where it left off on wake (the powered-off minutes aren't counted, because nothing was measured).
  • Energy is what you consumed — regenerative braking doesn't count backwards, so the figure only ever goes up.
  • Both are saved with the ride, so you can see them later in Rides (Section 12).
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 — see all six side by side.
Section 5

Button cheat-sheet

WhereButtonAction
Reconnect screen
(after wake)
B shortAsk to cancel the reconnect — a second B confirms and goes back to scanning
A shortDismiss that question and carry on reconnecting
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 · Weather · Rides · My Wheels · Blackbox · Alerting · Connections · 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
WeatherA holdBack to the menu (the page has no other controls — Section 8)
Any popupB / AB = yes/confirm · A = cancel
AnywherePWRTurn on · wake from sleep · switch off while running (Section 11)
The inactivity timer (auto-sleep) is reset by a button press — not by riding. So the device won't sleep while you're tapping on it. Working in the WiFi panel counts as well, and a CSV download holds it awake until it's finished (Section 9).
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).
WeatherNew. The weather station — clock, temperature, sky and forecast (Section 8). Needs a stored home network.
RidesThe Rides viewer — your stored ride history (Section 12).
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).
ConnectionsNew. Everything WiFi: turn it on, pick Access point or Home WiFi, and see the live link status (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 — all six are shown below.
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.

Same dashboard, one setting — Background repaints only the backdrop. Telemetry, colours and layout never change. Blue is the default; B steps through them and the row's live swatches show what you're picking.

24 km/h
Black
24 km/h
Pink
24 km/h
Bluedefault
24 km/h
Green
24 km/h
Teal
24 km/h
Yellow

The tints are lifted a few percent here so the hues survive a bright phone screen — on the device they sit much closer to black, which is exactly what keeps the telemetry crisp. The coloured frame is just this guide's swatch border.

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, total (odometer), ride time (TIME, mm:ss and h:mm:ss past an hour) or ride energy (ENERGY, Wh) — the last two are new, see Section 4.

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).
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.
WiFi is no longer in this list either — it moved to the new Connections screen on the carousel, together with the link type and the connection info.
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 9). 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 9).

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.

Connections — WiFi & link info

The carousel's Connections icon gathers everything WiFi in one place. A moves between rows, B changes the highlighted one, holding A goes back. WiFi is off by default and EucBuddy never switches its radio on by itself.

OptionWhat it does
WiFiOff / Session (until power-off) / Always (every boot). This is the on/off switch — it used to live in Settings.
TypeNew. Access point — EucBuddy makes its own hotspot and you join it from your phone (Section 9; this is how it has always worked). Home WiFi — EucBuddy joins your network instead, and the same panel is reachable from any device on it.
Charge screenWhat you see while EucBuddy sits on a charger: Battery (the usual gauge animation) or Weather — a clock, the temperature now, the sky outside and the hours ahead (Section 8). Weather needs a stored home network, so it is only offered once you have set one.
Info >New. A read-only screen: the current Type, the Status, which Network you're on and the Address to type into a browser. It refreshes while connecting, so you can watch it come up.

Using Home WiFi

Home WiFi needs your network's name and password, and those are entered in the web flasher — tick Configure WiFi before you update the firmware. EucBuddy stores them and preselects Type = Home WiFi, so afterwards you only have to open Connections and set WiFi to Always.

Not sure which to use? Access point needs no setup and works anywhere — it is the right choice for changing settings out on a ride. Home WiFi is for when EucBuddy sits at home and you want to reach it from your normal network without switching your phone's WiFi over.

Weather charging screen

With Charge screen set to Weather, plugging a charger into a switched-off EucBuddy shows a weather dashboard instead of the battery animation: a clock, the temperature right now, the sky outside, and the hours ahead. Press A or B to carry on to the normal screens, or unplug to switch off — exactly as before.

Section 8 covers the weather screen in full — both ways in, everything on it, the sky glyphs, the temperature colours, the sliding forecast strip and how to choose your city.
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 9) — it shows top-left on the pet screen.
  • Hold A for the menu, then Dashboard to ride.
MyBuddy screen
MyBuddy screen
Section 8

Weather

EucBuddy can also be a little weather station: a big clock, the temperature right now, the sky outside and what the next few hours look like. It shows up in two places — as its own screen from the menu, and instead of the battery animation while the device sits on a charger. Both need a home WiFi network stored on the device; the forecast is the only thing EucBuddy fetches from the internet.

CHARGING82% 4.05VCPartly cloudyWarsawNEXT 2h19C16:00A / B = power on
On the chargerThe charge state and battery stay in the top bar, so it is still a charging screen. A or B carries on to a normal start; unplug and it switches off.
WEATHER82%CClearKrakowNEXT 4h5C02:00Hold A = menu
From the menuThe same panel with the normal top bar and bottom rail — your own battery, plus a small WiFi fan while the radio is up. Hold A to leave.

Two ways in

WhereHow
From the menu Hold A for the carousel and pick the yellow Weather icon — it sits directly after MyBuddy. Hold A again to go back.
On the charger Set Charge screen to Weather in Connections (Section 6). Plugging USB-C into a switched-off EucBuddy then opens this instead of the battery gauge (Section 10).

What's on the screen

ElementWhat it tells you
Condition glyphThe sky right now, drawn from the forecast's condition code — and animated (see below).
TemperatureThe current temperature, coloured by how cold or warm it is. Follows your Temp unit setting, so it reads °F if that's what you picked.
ClockThe biggest thing on the screen — a device parked on a charger gets read from across the room. It's set over the internet and follows your chosen city's own time, daylight saving included. Dim --:-- means the time hasn't arrived yet.
Condition text · cityThe condition in words on the left, the city you picked on the right. A long city name is trimmed with a dot rather than painted over the condition.
Forecast stripBelow the divider: one forecast hour at a time, sliding to the next (see below).
Everything current sits on a panel painted in your dashboard background tint (Dashboard setupBackground, Section 6), ending exactly on the divider; the forecast below stays on the plain backdrop. That edge is what separates now from later, which is why neither half needs a label. Pick Black and the panel simply disappears, exactly as it does on the ride dashboards.

The sky glyphs

The forecast's condition codes collapse into eight conditions — a finer set stops reading clearly on a 240×135 screen. Clear and partly-cloudy skies each get a second face: a sun by day, a crescent moon with stars by night, chosen from the daylight flag for your city rather than guessed from the hour. Anything the forecast doesn't name at all stays a plain ?.

Clearsun
Clearnight
Partly cloudysun
Partly cloudynight
Overcast
Fog
Drizzle
Rain
Snow
Thunderstorm
The big glyph is alive: rays breathe, clouds drift, rain and drizzle fall on staggered beats, snow falls slower and sways as it goes, fog bands slide through each other and the storm bolt flares white on a strike beat. The small glyph in the forecast strip deliberately holds still — movement that size only reads as noise. (The mockups above animate too.)

Temperature colours

Cold blues through a temperate green into warm ambers, so a glance at the hue tells you the weather before you read the number. The forecast row uses the same scale.

≤ −5 °C−4…45…14 15…2425…3030 +

The steps are always these Celsius values — switching to °F changes the number you read, not where the colour turns.

The forecast strip

Four horizons come from the same request — +1 h, +2 h, +4 h and +8 h. The strip shows one at a time, holds it about five seconds and slides the next one in. The quiet time on the right is the hour it actually lands on.

The strip above cycles exactly as the device does.

Tick the ones you want in the WiFi panel's Weather card (Section 9) — all four are on by default. Untick all of them and the strip disappears, leaving just the clock, the temperature and the sky.

Your city

Where to set itHow
Web flasherInside Configure WiFi there's a City box with live search — start typing and pick your town. Set once while you're flashing anyway (Section 13).
WiFi panelThe Weather card has the same search, so you can change city later without re-flashing (Section 9).

While it works — and when it can't

Until there is something real to show, the screen shows no readings at all rather than a half-filled dashboard: an animated mark, what it's doing, and why if it failed. It keeps trying — a refresh every 15 minutes, a retry about a minute after a failure — and never quietly swaps itself for the battery view.

CHARGING82% 4.05VConnectingjoining your WiFiA / B = power on
Working on itConnecting · Syncing (setting the clock) · Updating (fetching the forecast). The mark pulses while something is actually happening.
CHARGING82% 4.05VNo WiFiset it in the flasherA / B = power on
No WiFiNo home network is stored, so there is nothing to connect to — the mark holds still to say so. Set one in the flasher or the WiFi panel.
CHARGING82% 4.05VNo weatherWiFi join failedA / B = power on
No weatherIt tried and failed, with the reason underneath — WiFi join failed, internet request failed, city not found. It retries on its own.

Once it has readings, a later failure is not worth a whole screen — the numbers are simply a little old. The forecast stays put and a small orange ! appears under the top bar until the next refresh lands.

  • Forecast comes from Open-Meteo, a free service that needs no account; the clock is set from public internet time servers.
  • On the charger, a rising two-note chime plays when the first forecast lands, once per start — later refreshes stay silent, and it follows the Sound setting.
  • Only 2.4 GHz networks work, as everywhere else on the device (Section 6).
CHARGING82% 4.05VCOvercastWarsaw!NEXT 1h8C10:00A / B = power on
Stale readings, marked and kept
Section 9

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
1Open Connections on the carousel and 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.
Those steps describe Type = Access point, the default. If you switched to Home WiFi (Section 6), EucBuddy joins your own network instead — there is no EucBuddy-XXXX hotspot to join and the panel does not pop up on its own. Read the address off Connections → Info and type it into any browser on that network.

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.

The Home WiFi card holds the network EucBuddy joins in Home WiFi mode, and the one the weather screen needs (Section 8): type the network name and password and press Save WiFi — so you can set or replace it without re-flashing. The password is written to the device but never read back to the page; only the network name comes out again. Only 2.4 GHz networks work.

Forget this network (same card, with a confirmation) erases it — and puts back what depended on it: the link Type returns to Access point and Charge screen to Battery, since neither could work without a network. The link you are reading the panel over is deliberately left alone; the change applies at the next start.

The Weather card sets your city — start typing and pick it from the live search — and which forecast steps the strip cycles through: +1h, +2h, +4h, +8h, all four on by default, none = no strip. See Section 8. (Opened over EucBuddy's own hotspot the page has no route to the internet to search with, so it saves the plain name and the device looks the city up itself.)

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. Every entry now also lists its ride time and the watt-hours used, and both can be edited by hand (type the time as mm:ss — for example 12:34 — as h:mm:ss for a long ride, or as plain seconds). Leave a field empty to say that value was never measured; it then shows as a dash instead of a misleading zero. Bad input is refused with a message rather than silently saved. See Section 12.

Downloads

Both CSV exports — Rides and the battery map — are meant to be run from the panel and simply work now:

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 10

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 11

Battery, sleep & power-off

Device battery

Sleep & wake

Cancelling the reconnect

While EucBuddy is reconnecting after a wake you'll see “Reconnecting” with B = cancel reconnect along the bottom. Useful when you've walked away from that wheel, or want to hop onto a different one straight away.

Power off

“Storage full” in red at start-up means the device's settings memory has no room left, and saving has stopped working — settings, favorites and new rides would quietly fail to stick. A Factory reset (Section 6) clears it. Download anything you want to keep from the WiFi panel first (Section 9).
Section 12

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 ride time, the energy used (Wh), 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.

Ride time and energy are new. They're measured only while the wheel is connected and survive sleep and reconnect — see Section 4 for exactly what counts. Rides recorded before this feature existed, and hand-added entries you left blank, show a dash for them rather than a made-up zero.

On the device — the Rides viewer

In the WiFi panel

Rides are kept across power-offs and firmware updates (room for around twenty thousand). They're erased only by Delete all rides, a Factory reset — or, once, by an update that changes what a ride record stores (see Section 13).
Section 13

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.

The flasher also has an optional Configure WiFi tick box. Fill in your home network's name and password there and EucBuddy stores them, so it can join your own network instead of making its own hotspot — see Connections in Section 6. The same box has a City field with live search for the weather screen (Section 8) — optional, and changeable later in the WiFi panel. Nothing you type there is sent to our servers; it goes straight to the device over USB.

Open the web flasher →

Adding ride time and energy changed what a stored ride looks like, so the first start after that update clears the ride history once. Settings, favorites, names, PWM calibrations and the lifetime counters are untouched. Want to keep the old rides? Download the CSV from the WiFi panel (Section 9) before you update.
Updating in the browser
Updating in the browser
Section 14

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 12).

It's reconnecting to a wheel I'm not riding

Press B on the “Reconnecting” screen and confirm with B again — you go straight back to the scan list and can pick another wheel. A (or just waiting 10 seconds) keeps the reconnect going. Section 11.

I cancelled the reconnect — did I lose the ride?

No. Choose the same wheel from the scan list within about ten minutes and the ride continues where it left off. Choose a different wheel and the old ride is closed and saved as its own entry first.

Time or Energy shows “--”

That ride has no measurement for it — it was recorded before the feature arrived, added by hand in the WiFi panel, or the field was left empty there. A dash means “not measured”, which is why it isn't shown as 0. New rides fill both in automatically (Section 4).

My ride history is empty after updating

The update that added ride time and energy changed the stored ride format, so the log is cleared once on the first start. Settings, favorites and calibrations are kept. Download the CSV before updating if you want the old rides (Section 13).

The battery-map CSV download used to stall

Fixed — the panel now pulls the file in small verified pieces with a “Downloading …%” counter and retries any piece that fails, and the device stays awake until the download finishes (Section 9).

The weather screen says “No WiFi”

No home network is stored yet. Put one in with the web flasher's Configure WiFi box (Section 13) or the WiFi panel's Home WiFi card (Section 9). Remember it has to be a 2.4 GHz network. Section 8.

The weather shows the wrong city

The built-in default is Warsaw. Change it in the WiFi panel's Weather card (or the flasher's City field) — the clock follows the city too, so it moves with it. Section 8.

The forecast strip disappeared

All four forecast steps are unticked in the panel's Weather card — that's the setting for hiding it. Tick any of +1h / +2h / +4h / +8h to bring it back (Section 8).

There's a small orange “!” on the weather screen

The last refresh failed, so what you're reading is a little old. Everything stays on screen and it keeps retrying by itself — the mark clears the moment a fresh forecast lands. Section 8.

Voltage, current and PWM are all “--”

If you connected to EUC World on your phone rather than straight to the wheel, the app's link simply doesn't carry those three. Speed, battery, distance, temperature and energy all work. Connect to the wheel itself for the rest (Section 2).

It switched off when I pressed the power button

That's what it's for now — PWR is a power button in both directions. Press it again to start up; if you were connected to a wheel, it reconnects and carries the ride on (Section 11).

It says “Storage full” when it starts

The settings memory has filled up and saving has stopped working, so new settings and rides wouldn't stick. Export what you want from the WiFi panel, then run a Factory reset (Section 6). Section 11.

Questions? Message us on facebook.com/eucbuddy — happy to help.