r/CarHacking

▲ 40 r/CarHacking+6 crossposts

Tried coding something on a newer VAG car and got "Access denied"?

Congrats, you've just met SFD (Schutz Fahrzeug Diagnose).

It's an additional security layer that requires authorization between the car and VW's servers. No token, no access. Simple as that.

I first ran into it on a Skoda Octavia IV when I just wanted to enable a couple of basic adaptations via OBD. Connected, entered the control module - denied. Took me a while to figure out it wasn't my tools or software. The module was just locked behind SFD.

SFD is used on cars from 2020 onwards - mainly MQB Evo (Golf 8, Octavia IV, Leon IV, Audi A3 8Y) and MEB platforms (ID.3, ID.4, Enyaq). It blocks adaptations, coding and parameterization.

Tokens are only issued through official accounts to registered users. So a regular enthusiast without dealer-level access simply can't get one.

Have you run into SFD yet? Which module blocked you?

reddit.com
u/traznifor — 1 day ago
▲ 128 r/CarHacking+2 crossposts

Linux Native CAN Viewer

I built a CAN viewer that runs natively on linux when making an ECU for work. Has full DBC support.

Cool part is it’s built with pure Cpp and Electron, so can easily run it on most machines. Qt is terrible on linux and always has dependency nightmares between Qt versions, this is why SavvyCAN broke.

Do you think this can improve your workflow? Curious who else has this issue

EDIT: Yes this is using pure SocketCAN! And works with any adapter using socketcan

u/hames344 — 4 days ago

Alternatives to Snap-on OBD-II scanner updates?

One of my clients recently got hit with a surprise software update bill for his Snap-on OBD-II scanner. It was almost $1,200 for a single year, which seems pretty steep.

At that price point, it got me wondering whether there are better options out there, maybe something iPad-based or with a more modern interface. I’m just starting to look into this, so I’m hoping to get some guidance from people who actually use these tools.

My client does auto upholstery work, and he mentioned needing a scanner that can reset certain systems after the work is done. I’m not totally sure which resets he needs yet, but I’d like to understand what options are available besides paying that much every year for updates.

Are there any good alternatives to Snap-on that would work for this kind of use? I’d appreciate any advice from the guys and gals here who have experience with scanners, subscriptions, and update costs.

Thanks very much. I appreciate any guidance you can give me.

reddit.com
u/BreakingInnocence — 7 hours ago
▲ 305 r/CarHacking+1 crossposts

Been working on a portable CAN bus logger as a side project —
wanted something cheap, battery-powered, with a screen, that
just works for long captures.

Hardware:
- ESP32-2432S028R (CYD board, ~$15 with TFT + touch)
- MCP2518FD CAN controller on VSPI
- SN65HVD230 transceiver
- microSD for logging

Plugged it into my 2011 Toyota Sienna's OBD port and let it run
for ~3 hours.

Result on the photo:
- 1027 fps sustained
- 10,727,750 frames captured
- 0 dropped frames
- 188 MB written to SD

The hardware is mostly off-the-shelf — the interesting part was
getting the firmware to handle sustained throughput without
dropping anything. Ring buffer sizing, SD write batching, task
priorities — that took the most iteration.

Anyone else doing portable logging on ESP32-class hardware?
Curious how others handle the SD write timing without dropping
frames at higher bus speeds.

u/baconbbqburgerr — 13 days ago

Is it possible to add my own themes to an OBD2 display?

Hi there, is it a pipe dream or might it be possible to view and edit configs/files on a cheap OBD2 display like this one? I'm satisfied with the info that is available on them but interested particularly in the possibility of creating additional custom themes or hijacking existing ones to personalise the display, such as tailoring it to fit the rest of the displays in my car.

I've tried looking for any similar questions online but haven't found one yet so I'm interested if this is something that I could experiment with. I have absolutely no issue taking it apart if it means looking at what's on the PCB to see if it's possible for the chance of helping anyone else who's similarly curious and has one.

I'm wondering if the mini USB port on the back can be a potential way to access or flash files onto it or if it would be something that might require the complexity of modifying or replacing parts of the PCB as I've seen can be the case with the way some of these kinds of products are made.

Thanks for any help to anyone who doesn't mind humouring the idea and for those who may have more of an understanding of the type of accessibility these products have or for anyone who may have one of these and a similar question.

Captured a 2016 Mercedes C300 (W205) CAN log and found the full VIN being broadcast in plaintext.

No UDS requests
No challenge/response
No security access

Just sitting on the bus at ~10 Hz.

---

Structure (whiteboard in photo):

byte 0 = sequence (0, 1, 2)
bytes 1..7 = ASCII chars
3 frames → 21 chars
strip 0xFF → 17-char VIN

Frames:

00 → 55SWF4J
01 → B9GU161
02 → 604

→ 55SWF4JB9GU161604

This is my actual VIN (my own car).

Verified 167 occurrences in a single capture — perfectly consistent.

Anyone passive-listening on the bus gets this for free.

For comparison:
Ran the same process on a Toyota Sienna 2011 — completely different story.

Toyota K-platform (pre-2019) uses proprietary KWP (0x21) for secondary modules
(TPMS 7A0/7A8, SRS 780/788), not standard UDS.

Different layer, different game.

Curious:

- Seen plaintext VIN broadcast on BMW / VAG?
- Is 0x071 consistent across newer Mercedes (W21

u/baconbbqburgerr — 12 days ago

Thinking of getting into car coding, where do you even start?

I’ve been looking into car coding recently and it’s something I could actually see myself getting into more seriously.

I’m not from a software background but I’m comfortable working on cars and understand how things fit together. What interests me is being able to change or enable certain features, like lighting behavior, comfort settings and other built in functions. The part I’m not clear on is where to start. There seem to be a lot of different tools and software depending on the brand and I’m not sure if it’s better to focus on one platform first or try to learn a bit of everything.

For those who’ve gone down this path, how did you get started with car coding? Did you stick to one brand in the beginning or try to cover multiple?

reddit.com
u/Fulcilives1988 — 4 days ago

Can-bus speedo conversion help

I have imported a JDM 2024 gr86. I'm trying to find which wires going into the guage cluster are for the can-bus system, so I can wire in a speedometer converter to make the speedo go from kmh to mph. Does anyone have any helpful files on this, or any experience in how I could find which wires are for the can-bus system? Thanks in advance

reddit.com
u/ambient12345 — 1 day ago

Toyota CAN display

Hey folks. I’m working on a project for my Mercedes Benz swapped with Toyota 3.5 V6 (2GRFSE).

I’ve set up the software so far where it can fetch data live from the car and decode RPM, gear selector position, throttle, coolant temp etc via DBC but it looks like most of the body CAN values are not transmitted on the system at all.

I’ve consulted DBC files and trends in the data to find these values, but I’m not sure where to go from here decoding other values transmitted.

I’m worried about:
- engine load
- gear selected (M mode)
- gear demanded (M mode), i.e. 4th selected, transmission in first at standstill

Right now I’ve tapped GND, CANH, CANL from OBD2 port, I think I can get some more data

u/_mzo — 5 days ago

ESP32 CAN Analyzer

I’m currently testing the firmware from esp32-can-iot on a real vehicle

Current setup

  • ESP32 + CAN transceiver (TJA1042)
  • Vehicle: Toyota Vios 2007
  • CAN TX/RX pins configured correctly
  • DB9 / OBD wiring checked multiple times
  • CAN_H and CAN_L continuity verified

What works

  • Two ESP32 nodes can communicate with each other perfectly using this firmware.
  • Sending and receiving CAN frames between ESP32 devices works normally.

The issue

When using this repo firmware on the actual car:

  • No CAN frames are received at all.
  • Even after sending OBD-II requests (0x7DF) there is no ECU response.

Questions

  1. Has anyone successfully tested this firmware on a real vehicle OBD/CAN bus?
  2. Could this be related to timing configuration differences?
  3. Are there known issues with ESP32 Arduino-CAN (Sandeep Mistry) on noisy automotive CAN buses?
  4. Is there any additional configuration needed for real vehicle CAN communication?
reddit.com
u/Minute_Panda3008 — 3 days ago
▲ 2 r/CarHacking+1 crossposts

Unauthorized parts swap

Is anyone able to determine if modules got swapped on a 2014 mercedes e350 coupe. I got my car back from a shop with different seats, steering wheel, rims, loose panels all around the interior, cameras not working like they used to. I got a xentry diagnostic done and they show faults with the seats, steering wheel as well as other things. Is there a way I can prove they swapped it because the xentry might confirm a possibility its swapped but not definitely.

reddit.com
u/Jungle717 — 3 days ago

Hey everyone - I've finally decided to start sharing a project I've been working on since 2020. After getting stranded in my Land Rover on an island (go ahead and laugh Jeep people) I decided that one simple audible buzzer could have made the difference between a bad situation and a worse one.

What started as an Arduino Uno project with a piezo buzzer and hobby LCD has evolved into a flexible system that reads your classic car's analog sensors and delivers the real-time data in standard OBDII format wherever you want it - your phone via BT, logging software, after market gauges, custom dashboards, CAN, whatever. It's open-source, free to use, and currently supports Arduino, ESP32, and Teensy. More information on features and capabilities can be found on Github. Stay tuned - more to come!

u/preOBD — 10 days ago

[ALFA 159 FACELIFT] Alfa 159 HVAC panel multiplexing for Joying head unit — does the display depend on CAN ACK?

I upgraded the OEM navigation on my Alfa Romeo 159 (facelift) to a Joying Android unit. It fits beautifully, but the lack of physical controls is killing me.

Reading all 10 steering wheel buttons directly from CAN using my own ESP32 + SN65HVD230 setup is not a big deal. (The Chinese CAN boxes only decode 5–6 buttons). That part presumably will work great.

Now I’m considering something more ambitious:
multiplexing the HVAC control panel so it can control both the climate system and the Joying unit.

Concept

  • Climate mode: HVAC works normally, all CAN frames pass through untouched.
  • Infotainment mode: I intercept HVAC CAN frames and convert them into USB HID events for the Joying.

The problem

I don’t know how the HVAC panel’s display logic works.

  1. If the HVAC is OFF, it might not send any CAN frames at all → no input for Joying.
  2. If HVAC is ON, I can intercept the frames, but the panel might still update its own display (temperature, fan speed, etc.) even though the car never receives the command.

The only way this works cleanly is if the HVAC panel waits for some kind of ACK or status message from the car before updating its display.
If it doesn’t, the display will show fake values while I’m using the knobs to control the Joying.

Questions

  • Has anyone reverse‑engineered the Alfa/Fiat HVAC panel logic?
  • Does the display update immediately based on local MCU input, or does it wait for a CAN response?
  • If not, is there a minimally invasive way to test this? (I have a CANable 2 Pro and can isolate the HVAC CAN lines temporarily.)

Any insight from people who have hacked Fiat/Alfa HVAC panels or built CAN gateways would be extremely helpful.

Thanks!

u/Kesztio — 1 day ago
▲ 91 r/CarHacking+1 crossposts

I’ve been working on a project called CANverge over the past few months — it’s an ESP32-based CAN interface that streams CAN data over WiFi, with built-in decoding and SD card logging.

This clip shows an analog input mapped to Engine Speed CAN signal and streamed live to RealDash.

Key features so far:

-Wireless CAN streaming to RealDash (supports multiple clients)

  • Built-in web UI for configuration
  • DBC-based signal decoding
  • SD card logging (SavvyCAN-style)
  • Configurable digital & analog I/O mapped directly to CAN signals

I originally built it for a friend running MaxxECU who wanted wireless dashboards and extra sensor inputs.

I’m now trying to see if this is something others would find useful, so I’ve put together a simple page here:

http://canverge.olearytech.com

I’d really appreciate any feedback or thoughts.

u/Sam_OLearyTech — 12 days ago
▲ 38 r/CarHacking+2 crossposts

Hi,

Ever since I can remember, I’ve always had issues with the TPMS sensors in my Zoe (R240 2016)... and it seems the software is somehow broken because I’ve never actually seen the tire pressure displayed on the dashboard with my own eyes (apparently it’s a known issue).

Luckily, thanks to the recent changes in my project, I can now pull this data through OBD and display it directly in Android Auto. And this is what it looks like above... Pretty cool? :)

Finally, no need to launch CanZE just to check the tire pressure.

u/manio07 — 8 days ago
▲ 41 r/CarHacking+1 crossposts

We wanted to have a fun hardware and embedded software project to work on during a break we took with my teammates. So we took an old VW Polo from 2007 and decided to play with it.

We wanted to transform it into an EV and add new features to it, but we wanted to build the whole hardware and software for this ourselves.

So we put a Nissan Leaf Motor in it, built a battery from scratch based on Nissan NV200 battery cells and added a tesla brake booster gen2 to compensate from the lack of brake assistance since we removed the thermal engine. We also used a 2016 VW Polo steering column from which we removed the ECU and replaced it with an arduino. We made all these components talk to each other using Raspberry Pis and Arduinos.

We also wanted to integrate the parts we used as seamlessly as possible. For instance, the original ignition lock powers the whole system, old + new. We used specific CAN messages from the keylock to trigger relays to activate the motor. We also send the RPM from the Nissan electric motor and send the message in the right format for the original instrument cluster to display it.

We wanted to make it look like the car was always made like this.

We also created an infotainment system from scratch so we could see some useful information and have a touchscreen for the automatic gear selection.

https://preview.redd.it/ajw3nft1vpzg1.jpg?width=4032&format=pjpg&auto=webp&s=acdeee68d994b2579681f62528b3dd182f3149a6

https://preview.redd.it/g6drrla4vpzg1.jpg?width=2048&format=pjpg&auto=webp&s=6db5789f2cbdfe82ff590d9f8ccbc9215662b2af

We are running an IOT platform called Nerves on it. It's written in Elixir and it allowed us to iterate on the software quite fast. All the software is available on github: https://github.com/open-vehicle-control-system

We were lucky enough to showcase our work at several conferences:

Fosdem 2025 Playlist & Goatmire 2025 amongst others...

The project was also featured in this month's Raspberry Pi Official magazine.

Our first objective was to make the wheels spin, it involved a lot of welding and fabrication. But we went from this "plan prototype":

https://preview.redd.it/9v0nr0y2wpzg1.jpg?width=1536&format=pjpg&auto=webp&s=26f76ed45910172190494b6b3dee2b267301a506

To the driveable version of our platform:

https://preview.redd.it/snh08xx5wpzg1.jpg?width=2048&format=pjpg&auto=webp&s=4d56598bd4201535c33682e853f17821f5ab6169

https://preview.redd.it/oxhquxx5wpzg1.jpg?width=6960&format=pjpg&auto=webp&s=3e6dfa5f18102a250e3741ca4119260922b94243

The platform is now extensible and we have created a radio control bridge that allows to control the car with a Mavlink radio controller. We also have a ROS2 bridge for those into robotics, and plenty more ideas to build on it.

We have done our fair share of reverse engineering of CAN messages during this project and we were wondering if there were any similar projects out there!

If you want to see the car running, we have made a small intro video a few months ago: https://www.youtube.com/watch?v=QOdd3Ya6qlY

reddit.com
u/Inside-Landscape6926 — 6 days ago

Hello everyone!
I am here asking about something that might as well be impossible, but it doesn't hurt to ask!

Has anyone ever found/open-sourced the Security access key / algorithm used for BMW vehicles?

I have lately been fascinated by tools like bootmod3 / MHD that allow you to unlock the ecu and tune car without needing to bench it (provided it's made pre-2020), but as a software engineer I can't help but think: how did they end up breaking the seed-key algorithm?

So, I've gotten to work, I borrowed a tuned 2016 BMW F30 340i from a friend, and started working in my free time to find what they do.

After using an MHD adapter (which works with both bootmod3 and MHD tuning app), I used wireshark to capture the packets being sent, and what I do know is this:
- The apps request security access, the cars do send a random seed everytime, and the app does respond with the appropriate key (derived from the seed)

- The seed and key change everytime, so it's not a case of the ECU being unlocked and sending the same seed or something like that,

- The seed is 8-bytes, and the key is 128 bytes.

- Both MHD Tuning app and bootmod3 can flash the ecu, and do it in more or less the same way from a tuning standpoint, and at least bootmod3 can do it offline, which means the algorithm and key both reside locally *somewhere* at the time of flashing.

Now, I have been extensively researching but haven't found any key/algorithm for bmw cars, but the MHD, bootmod3, and other apps that do the same thing must have gotten it from *somewhere*, so is there any resource I am missing? or did they just spend a lot of time reverse engineering it? I do find that a bit hard to believe because they support a wide variety of ecus that have different keys and algorithms.

It would be extremely helpful if someone can shed light at what bootmod and MHD are doing and if it can be replicated, I would eventually like to release some open-source tool that can do the same thing if I manage to find out how to do it, obviously it wouldn't have the entire feature-set of MHD/Bootmod, but it would be *something* for hobbyists that want to hack their BMWs without paying a lot of money.

reddit.com
u/Amromnia — 9 days ago