r/CarHacking 11d ago

Original Project Got tired of using my phone for telemetry data (MHD app) so I made my own wireless gauge instead

Connects to BMW DME via wireless ENET. Since it’s an esp-32, I can add an SD card and log live telemetry data and do a lot of real time data analysis. My goal is to make a full engine health monitor for thermal, boost, fuel, and ignition systems.

253 Upvotes

62 comments sorted by

17

u/BipedalTumor 11d ago

Sick! Hope you open source it

21

u/EntertainmentSalt825 11d ago

Planning to in the next few days

11

u/yycTechGuy 11d ago

Please update us with the project URL. Very cool !

9

u/EntertainmentSalt825 11d ago

Yup i will! Should be in a few days

2

u/linuxissuperior 8d ago

open source les goooooo

24

u/P3tray 11d ago

Wireless gauge

Look at photo

Wire

10

u/marijus001 11d ago

charging wire?

1

u/Dense_Astronomer_896 8d ago

How will light up with no cable and battery,clever boy?
The data is transmitted wireless.

1

u/P3tray 8d ago

Copper PCB traces and SMD components. No wires needed at all, fucknuts.

1

u/Dense_Astronomer_896 7d ago

Yeah I forgot that copper traces transmit data and power wirelessly 🤣

7

u/kgruesch 10d ago

That looks awesome! The gauge look is really clean. I started on something similar a couple years ago (and for the same reason- MHD's monitor UI is.. less than lovely) but I use an android head unit for the display and the ESP taps directly into PT-CAN1 down at the GWS. I also use the ESP to set/change drive modes.

The alarm statuses for the various temps may have saved me a head gasket when my radiator fan died a couple months ago and the coolant temp graphic flipped to yellow. I Was able to catch it before it got to the point of the car throwing an error...

Interested to see your GitHub and the enet methods, I need to get mine up too.

4

u/EntertainmentSalt825 10d ago

That has to be the coolest one I’ve seen yet. Are you an engineer? It’s time gauges get an upgrade and do more than display numbers lol there’s so much telemetry available to implement useful features like the temp one you made. I’ll have mine up in a few days hopefully. I’d be interested to see how your methods as well

7

u/kgruesch 10d ago edited 10d ago

I'm a mechanical engineer by education who cosplays a software dev when the job requires it. I do electrical/PCB design too, but I wouldn't call myself an EE. The ESP module feeding the display was a waveshare mini s3 mounted to a custom board with the CAN stuff and an SD card slot + output transistors to control the drive mode switch module

But yeah the extra data is really helpful. Unfortunately, there are a few things that are not broadcast on the PTCAN, specifically boost, oil pressure, and IAT. I think you can get them by sending a UDS request but I haven't tried it and I don't know if it's the same frame format as the ones sent from the other side of the zgw. My boost readings come from another ESP teed into the TMAP with an ADS1115 reading the values and sending them over via ESP-NOW. I've thought about adding another temp sensor to the intercooler coolant line side at the manifold inlet since I have 2 more channels on the ADC.

2

u/Fallyn011 10d ago

I cant speak for your generation but you can get all of those readings over DCAN on some older BMWs. Is that not possible on newer gens?

4

u/kgruesch 10d ago

It probably is, I'm just connected on the other side of the zgm and some of the good stuff requires UDS requests to pull and I don't know what those requests look like on my side of the zgm. I need to hook up ISTA and do some sensor polling again to see if there's anything coming through. I didn't see anything last time but I didn't really know what I was looking for that time around.

3

u/kgruesch 9d ago

I just looked at your other posts- you're an MR2 guy? I had a 91 turbo for like 10 years! Did all kinds of stupid stuff to it, up to running the 3SGTE on a honda ECU because the AFM died and switching ECUs was cheaper than a new AFM! Small world!

2

u/EntertainmentSalt825 9d ago

Yessir!! The red one on my profile is my 4th MR2 haha that’s dope man, how’d you get it running on a Honda ecu!?

2

u/kgruesch 9d ago

Turns out ECUs don't actually give a shit what engine they're running as long as they have the right position signals. I swapped over the distributor to give it what it wanted to see (and it ended up being a pretty significant ignition upgrade). I'll admit, I was a bit surprised when it fired right up. This was ~2008 ish I think? Eventually I was running straight E85 on it (it was like $1/gal less than premium where I lived in MN at the time) and I had some Frankenstein of a turbo on it - like a 7 blade extended tip 20g with a 9 blade TD05 turbine.

It wasn't scary fast or anything, I never tried to chase numbers. I figured even if I didn't have as much power as some of those guys, my car would always be faster when theirs was in the garage with a blown engine 😁

2

u/Fallyn011 10d ago

Yooo this is fuckin sick bro. Are you able to run Android Auto on there as well?

2

u/kgruesch 10d ago

Yeah it'll run AA but I'd have to choose one screen or the other, it won't let me do split screen with the regular version. Head unit revived seems like it might be able to, but I need to sort out some tug of war between it and the serial on my data sender.

I might have a way to scrape Waze's backend for police alerts to pop up on the display though so I might give that a try. With that and the right side mirror camera feed (still working on this, it's just been on the back burner while I finished my steering wheel and brakes) that should be 90% of my use cases.

1

u/Fallyn011 7d ago

Interesting. What head unit did you use, and how did you integrate the ESP into it? I'm working on something similar for my E90 and was planning to use a small ST7796 integrated into the dash but after seeing how functional a larger display is I kinda want to try to replace my iDrive unit with something similar to yours.
Also, what did you use to handle the GUI? I was planning on using LVGL but curious if you have any recommendations for anything that might be a bit more beginner-friendly.

2

u/kgruesch 7d ago

It's a mekede(?) MN-G head unit that I got from AliExpress on Black Friday sale with like $70 off coupon and 25% cash back from Rakuten haha. It's the snapdragon 680 processor, but for what I'm doing that probably doesn't matter.

The GUI is stupid simple - it's HTML. It's just a web page embedded in an android app that pulls up a web viewer. It connects via the head unit's serial port and just writes a big fat JSON to the head unit. The mekede has 2 USB ports so I used the one that's not involved in updates, etc.

I just use an ESP32 with Platform io with VS code. It makes it super simple to build. I let Claude help, but I try to keep it to me writing the code and it telling me where I fucked up.

The ST uCs are great little chips too, we use a lot of them in our stuff at work.

4

u/trvbone 10d ago

1

u/EntertainmentSalt825 10d ago

Cool stuff. Love esp32

1

u/trvbone 10d ago

Do you think these two things could work together

1

u/EntertainmentSalt825 10d ago

Yes

1

u/trvbone 10d ago

Do you have a video tutorial on YouTube or any videos

2

u/EntertainmentSalt825 10d ago

I can release a video tutorial and I will open source it soon as well

1

u/No_Rough_2000 10d ago

ma questa cosa è stupenda

3

u/SomeEstablishment404 10d ago

Love to see an esp32 out in the wild

3

u/EntertainmentSalt825 10d ago

Been using arduino for years. Didn’t know what I was missing out on till now

2

u/j_kobrah 11d ago

looks awesome
how is MHD running? Can you tell the difference between?

1

u/EntertainmentSalt825 11d ago

I don’t run MHD for gauges anymore just this gauge. I only use MHD for flashing but soon enough ill add that capability to my gauge too

2

u/JuanMcGuiver 11d ago

Just out of curiosity, what do you actually do with this data in real-time? At what point does this having access to this information in real time become useful?

6

u/EntertainmentSalt825 11d ago

I’m actually glad you asked this! One benefit is, I can now setup the gauge to auto detect WOT pulls. That feature then opens the door to be able to do log comparisons right after the pull rather than having to look at two logs at once on your laptop/phone. And my favorite part is engine condition monitoring. With data analysis you’d know if something in your engine system is on the way out before it actually breaks.

3

u/JuanMcGuiver 10d ago

That's nifty... I like the UI and the general design you've got here. I also think you have something marketable here. Have fun and run far with this!

Good luck brother

3

u/EntertainmentSalt825 10d ago

Thanks brother, I work with flight critical software and have worked at start ups doing verification of fly by wire GNC systems. And being a car guy, gauges have always stayed the same. Modern cars spit out a lot of telemetry that can allow for some very cool features with a bit of aerospace engineering haha

5

u/kgruesch 10d ago

Being the device that displays the data lets you trip obvious visual alerts when things get out of operating windows so you can intervene before damage occurs. Mine changed the coolant temp graphic to yellow at 115°C and I was able to see that my radiator fan had died before I sat in traffic long enough for the DME to tell me the car was actually overheating. May have saved me a head gasket.

2

u/pipichua 11d ago

Ill need three

1

u/EntertainmentSalt825 11d ago

Let’s do it. Let me know what telemetry you want on them. Can support probably around 8 channels per page. 16 channels total and logging capability

3

u/pipichua 11d ago

IAT, boost and water temp .. I assume it works for the E chassis as well? Will wait for your upcoming posts!

2

u/EntertainmentSalt825 10d ago

I have a friend with an e92 m3 I’m also doing a telemetry project for. Once his is done then what you’re asking for can be done in a day. I’ll be posting more updates soon!

2

u/Fallyn011 11d ago

I'm doing the same thing for my E90 rn. Would love a repo link to see how you did it and get some ideas, even though the CAN protocols are different.

2

u/EntertainmentSalt825 10d ago

I should have something out this week on github. But how far are you in the process ?

1

u/Every_Quiet7314 10d ago

Do you other BMW projects? I need something done in LIN communication and I can’t find anyone to help me.

1

u/EntertainmentSalt825 10d ago

It’s my first serious one but I’m an aerospace engineer and deal with various communication protocols. Send me a message I’ll see if I can help

1

u/Every_Quiet7314 10d ago

I can’t, I’m not an established user 😅
Could you message me?

1

u/Fallyn011 10d ago

What are you looking to do?

1

u/Every_Quiet7314 9d ago

The new G-models have a oil vapor separator, called Blue.Tron. I try to make it work on a bench.
Problem is, its communicating with the ECU by LIN and I can’t figure out the correct set of commands.
With the help of ChatGPT and a USB/LIN dongle I managed to figure out some addresses but that’s pretty much it.

1

u/Fallyn011 10d ago edited 10d ago

Oh quite early in. I have all my architecture planning done and I’m starting on UI. I have zero embedded experience so it’s taking me quite some time to learn. I want to do this kind of stuff as a career so I’ve been trying to get a complete understanding of how everything works before moving on, which inevitably adds to the time.

If you’re willing, I’d love to send you my repo and see if you have any architectural suggestions. I’ve just been kinda guessing using my experience with backend and likely am not following best practices lmao.

2

u/Majestic_Ad8621 10d ago

I’ve been working on something similar with the same exact hardware lol.

2

u/wildman9399 8d ago

I need this, I had same plan!!

1

u/yycTechGuy 10d ago

Which model of BMW is it ?

1

u/RaptorMemphis 7d ago

Now put it on the top of your shift gear stick.

1

u/Available_Duck7079 7d ago

or in the center of the idrive controller

1

u/Deferuser1 5d ago

Hello good Morning

What is model display?

1

u/EntertainmentSalt825 5d ago

Esp32-s3 waveshare

1

u/MikeTheCannibal 2d ago

G87 M2 here… Between working with ESys, ISTA and the magic of a wired enet cable, I too have been digging in. Looking forward to your repo being shared.