I created a DIY SmartTop
Just purchased an r171 350. I love everything about it, and like many others, would like to be able to have the top drop (and up) hands free. While I have no issue buying a SmartTop for the car, I don't need every feature, and I liked the idea of the challenge to build my own.
Hardware: Waveshare esp32s3 w/ built in CAN transceiver. I also bought a separate CAN BUS module so that the ESP could sit in between the traffic, but I ended up not going this route.
Webserver: The esp serves up a simple webpage with all interactive values. Textarea to watch traffic, a textbox to inject CAN commands for testing, memory section to hold friendly name->CAN values, a section to build a 'macros'. Trigger on X, run Y for Z seconds. And an Admin section for base values (frequency, IP, gateway, etc.)
Access Point: The esp broadcasts the AP for the first 5 mins after deep sleep (or boot) that you can connect any computer/phone to look at/change values. The AP also allows for OTA updates.
Software: The esp loads the macros into memory and looks for the traffic values. Once found, it injects the values you've specified.
Install: It connects to the L & H CAN BUS B under the door sill.
Power: Once CAN traffic dies off (a few mins after car shuts off) the ESP goes into deep sleep. Any traffic on pin 6 wakes it up, and boots (about 150ms).
How did you find the CAN values to inject? I built a textarea box and a 'capture' routine that captures X number of seconds of traffic, then allows you to send those thousands of captured messages back in. Process of elimination will find the value you're looking for.
I'm not sure how the SmartTop injects it's menu into the screen on the car, and while I think that's super cool, I'm happy with my solution.
Posted Aug 31, 2026, 2:31 AM UTC