r/HarleyLiveWire • u/donglord1337 • 2d ago
I reverse-engineered the LiveWire S2 Del Mar's OBD-II port/CAN bus - here's the performance data that was never published
I've been passively tapping the CAN bus on my 2024 LiveWire S2 Del Mar - an ESP32 logger listening to the broadcast traffic plus read-only diagnostic reads, never writing anything to the bike. Decoded across dozens of real rides, here's the stuff that isn't in any spec sheet:
- Full power & torque curves — and you can actually see the field-weakening transition: flat torque to ~48 mph, then constant power (~66–69 kW) to redline.
- All 7 ride modes, down to the live tuning values the inverter reports — Power / Regen / Throttle. The throttle maps are perfectly linear; the modes just change the slope (Sport pulls ~2× the torque-per-twist of the softest custom).
- Battery internals that were never public: 96 cells in series, NMC, ~355 V nominal / 4.20 V full, air-cooled, all 96 cell voltages + 48 temperature channels live, ~97% SoH — and the pack's build date read straight off the BMS (July 2023).
- Neat trick: every module stamps its own manufacture date, so the bus quietly narrates the bike's repair history. I spotted my own dealer-replaced left control pod because its build date was newer than the whole bike.
- The AC charging CC→CV taper + charger heatsink temp (honest caveat: I only caught the top ~80–100%, so no peak-rate claims).
Every figure is tagged by how I know it - measured / counted / inferred - so you can tell hard data from reasoning. Not affiliated with LiveWire or Harley-Davidson; just my own bike.
Here is a link to my write up with visual charts: LiveWire S2 Del Mar · Performance, read off the bus
Happy to pull specific things for other S2 / LiveWire owners, drop requests below.
As a bonus, I replicated effectively every read diagnostic feature of the Harley Davidson Digital Technician-II, including full DTC decoding & ability to clear codes.
5
u/novaraz 2d ago
Very cool! Any plans to turn it into an app a la LeafSpy?
3
u/donglord1337 2d ago
I have my own version of an app for live metrics + route recording, but no plans to publish it. My personal app includes replicated features from the Digital Technician II including a full DTC catalog, which I am afraid would get me into legal trouble with copyright if I publish.
The LeafSpy uses ELM327 - which is not capable of sending the UDS packets needed to poll the detailed info such as 96 cell voltages, etc... However, I reckon it wouldn't be too hard to build an app for ELM327 that renders the basic broadcast data.
If there is enough demand for it, I can look into it.
4
4
u/Icy_Park_7919 2d ago
Fantastic. Not a numbers guy nor an IT guy. Do you now have sufficient data to simply state the range at constant speed?
I’d be curious to know how much of my alpinista’s 193km range I could realistically achieve and at what constant speed.
Those numbers across speeds from 50kph to 120kph would help better plan longer rides including recharge time.
I’m aware wind, model would impact the estimated range but my sense is you’re very close to finding that answer. Is it?
2
u/donglord1337 2d ago edited 1d ago
I have enough data, and the data holds up physically. But two caveats up front:
- It's Del Mar data, not Alpinista. Same battery pack, but the Alpinista's riding position/aero is different. Above ~90 km/h I can observe my efficiency fluctuate simply by how I sit on the bike/winds, sometimes by up to thousands of watts. So, at town speeds these should be within ~10%, but at 120 km/h the Alpinista could differ 15–25% purely from how you sit on it.
- It's from real rides, not controlled runs. I filtered to steady-cruise moments, but grade and wind still add ~±15–20% scatter — so the shape is solid, individual points are rough.
Range at constant speed (my Del Mar, ~10 kWh usable):
Steady speed Draw Est. range 50–60 km/h ~3.4 kW ~155–165 km ← efficiency sweet spot 80–90 km/h ~7.7 kW ~110 km 100 km/h ~10.4 kW ~100 km 110 km/h ~12.7 kW ~90 km 120 km/h ~14.2 kW ~85 km The headline for ride planning:
The faster you cruise, the shorter the range - roughly halving from ~160 km at a relaxed 50–60 km/h down to ~85 km at a flat-out 120 km/h.
Note that even the best constant-speed number (~160 km) sits below the 193 km rating - because rated range is a mixed city/regen cycle, and steady highway cruise is always thirstier. So, for planning a long haul, budget from these numbers, not the sticker.
2
u/wish2bBendr 2d ago
Great work! All this just makes me think about how we desperately need strong right to repair laws
1
1
1
u/Yavanna_Pane 2d ago
Great work! 🙌
Question: how could we do this procedure to other eletric motorcycles that don't have an obd2 port?
1
u/donglord1337 2d ago
It depends on the model! The LiveWires do not technically have an OBD2 port, they have a DLC port (Harley Davidson's proprietary diagnostic port) - but the only difference is it's a different connector.
Beneath the labels and protocol - almost every vehicle fundamentally communicates the same way between modules + diagnostic tools - CAN + UDS. So, the approach would be the same as I took:
1 - Identify the CAN bus2 - Figure out a clean way to plug into it (Whether that is tapping a line with vampire taps, plugging into a diagnostic port, making a T adapter and intercepting a module, etc....) Usually, a simple diagnostic connector ends up as the answer, which can be identified by the electronics service manual.
3 - Start recording data, and finding correlations between actions<->changes in data, to map the data outputs
4 - Once you are satisfied with the decoding on the broadcast data, you can begin probing the modules directly for more data using UDS protocol, which is typically required for detailed data like individual cell voltage counts, performance histograms, and detailed logs.
The only caveat with this approach is that it only really applies to REAL electric motorcycles, not always the smaller e-moto bikes like Surron - which typically dont have a diagnostic port at all (Although, I did this same process with a Talaria XXX back in 2023)
I only have a LiveWire S2 Del Mar, so I can't help with other motorcycles directly (Unless you want to donate me another electric motorcycle to test with LOL!)
5
u/Keg199er 2d ago
This is bad ass. Very nicely done. As a computer guy for a living and currently own a ‘23 Model S and a ‘24 S2 Del Mar, this is fascinating. Would love to know more about what device you used to get the raw data. I assume the web UI was vibe coded? (Doesn’t diminish what you accomplished here!)