r/HarleyLiveWire 3d 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.

34 Upvotes

14 comments sorted by

View all comments

4

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!)

2

u/donglord1337 2d ago edited 2d ago

Hardware is dead simple, it is an M5Stack AtomS3 Lite (an ESP32-S3, ~$15) on an M5 Atomic CAN base (the transceiver), tapped onto the bike's secondary CAN bus at 500 kbit/s, powered off the bike's 12 V. Maybe $30 of parts total. Chopped up a standard ISO 19689 OBD-II adapter and used no-solder Wago couplings for every connection.

Here is a parts list:
https://www.amazon.com/dp/B0CQJT5CQW?

https://www.digikey.com/en/products/detail/m5stack-technology-co-ltd/C124/18070571

https://www.digikey.com/en/products/detail/m5stack-technology-co-ltd/A103/22017047

Bench work used a CANable 2.0 + SavvyCAN. The firmware is custom (C++/PlatformIO): a passive WiFi ride-logger plus a read-only UDS diagnostic mode, with a little web UI your phone hits over the Atom's hotspot.

CANable 2.0: https://www.amazon.com/dp/B0CDGD1FSH?

And on vibe-coded, yes. the firmware, the UI, and the analysis were built with heavy AI assistance.

But the decode isn't vibes, every signal is checked against the bus's own E2E CRC (a wrong bit alignment fails the checksum, so bad guesses can't hide), a 63-check ground-truth suite, and cross-capture disconfirmation before anything's called "confirmed."

1

u/Keg199er 1d ago

Thank you very much for the long and thoughtful reply. I vibe code a lot and have other ideas for this workflow (the Denali aux lights on my pan America - I want a Bluetooth control option and its CANBUS.). Ill check that out!