Tricking TFT into thinking it has a nav unit connected

157 views
Skip to first unread message

Diogo Cardoso

unread,
Sep 2, 2024, 6:28:55 AM9/2/24
to bmw-canbus
Hi there guys,
I've recently started my cabus "hacking" journey with two objectives, one is that I want to be able to decode wonder wheel/menu buttons and re-direct them to my phone running android auto and the other one was to make a built in gate opener to the bike, like if I press aand hold the menu up button one gate opens and If I press menu down the other one opens. My question is that if there's a way to trick the tft into thinking it has a nav unit plugged in (like chigee or touratech adapter) so that my menu up/down and wonder wheel actions don't reflect in the tft display. I don't mind if I have to put an Arduino or bridge two pins since I can do that inside my phone mount. Any information is appreciated.
Thanks in advance

daniel armenta

unread,
Dec 17, 2024, 6:10:02 AM12/17/24
to bmw-canbus
Hi, I don't know if you got it, according to this graph, pin 9 of 3.3v seems to be the one that controls that the adapter is in the base, it would have to be measured, presumably the unit will have to give 3.3v to that pin so that the electronics of the support indicate to the motorcycle that it has a support in place, I don't think that pin gives the 3.3v but that it receives them, it's all about measuring and testing...
Let me know...
Regardspin gps bmw.jpg

Aleksander Jerič (S55AJ)

unread,
Feb 10, 2025, 1:35:41 PMFeb 10
to bmw-canbus
Diogo, that is a wonderful idea! I might use it too!
I landed here after searching DBC file, try making Arduino CANbus sniffer like I did. Also try ESP32 BT/Wifi serial bus redirecting to android. I can get all bits from wonder wheel, menu button, blinkers etc. You could make a combination to trigger gate opening etc. And you do not need NAV feature activated.
Hope it gives you

Christopher Hemmings

unread,
Jun 22, 2025, 5:50:58 PMJun 22
to bmw-canbus
Hey Diogo, 

Ive recently had this exact same thought and have just came across your question. Did you end up figuring out how to trick the bike into thinking it had the GPS unit? I want to do the same thing with Android auto and using the control wheels to navigate the screen.

Diogo Cardoso

unread,
Jun 26, 2025, 4:29:16 AMJun 26
to bmw-canbus
I just picked this project back up from the shelve, I tried to just power up the support with 3.3v and the bike showed no indications, I assume some communication will be needed on the UART pins but Ill see what I can figure out, for now I'm reading wonder wheel and other inputs from the dwa plug, I figured that long pressing the menu up/down buttons doesn't do nothing on the tft so I've mapped the long press instead of the simple click, for an "ok" button I chose the blinker cancel for the ok.

Diogo Cardoso

unread,
Jun 26, 2025, 4:32:55 AMJun 26
to bmw-canbus
I've also switched to mapping the key presses as keyboard input to an android device since I'm now making a custom gps device using an android phone. I've gotten around the gate situation by installing a gps tracker in my motorcycle that automatically opens the gates for me when I get close (even better than the buttons). I wanted to disable tft input so that I could use up and down buttons with a single press instead of long press. 

Bixio Rimoldi

unread,
Jun 28, 2025, 11:34:02 AMJun 28
to bmw-canbus
To trick TFT into thinking it has a nav, you need to implement a LIN slave that responds to IDs 2Dh and 28h (hexadecimal 2D and 28). Below I am giving the correct response. I have done it, to control my navigator app through the wonder wheel. However, the software of the bike must be "ready" for the nav. This is standard for bike that comes with the cradle, like a GS, but not for a sporty bike like the S1000R. Mine was not ready, and I had to ask the dealer to make a software update and check the corresponding feature. Once the bike is ready, and the LIN bus that feeds the Nav gets the correct responses, the TFT will show a blue TFT icon on the top left. When you make a long up press of the Menu button, the TFT icon changes to NAV.  At this point the LIN bus carries the signals of the wonder wheel, coded into the frame with ID 14h. 

Here the needed responses; 

Slave response to Master ID 2Dh: 01h 15h 15h 00h 00h 00h 00h 00h (8 bytes)
Slave response to Master ID 28h: FFh FFh FFh FFh FFh FFh 00h 00h (8 bytes)

My implementation uses an Arduino Nano ESP32 to implement the LIN slave, interpret the wonder wheel movements, and translate them into bluetooth commands (arrows up/down/left/right and enter) to control Scenic (the navigation app that I use and that works great for me). 

The LIN slave implementation is the one from Georg Icking-Konert https://github.com/gicking/LIN_slave_portable_Arduino

I intend to publish everything (the electrical circuit, the Arduino code, and the code for a 3D printer). I don't know yet in which forum and in which format I should make all this available. Suggestions are welcome.  

Diogo Cardoso

unread,
Jun 28, 2025, 1:46:37 PMJun 28
to bmw-canbus
Awesome! I had my craddle optioned in from the factory (F900XR) so I believe I'm good there. To comunicate to the lin bus I will need to plug directly in to the cradle's plug on the bike or can I power up the craddle and send the messages trough UART? In regards to sharing everythin you've done I feel like you should create a github repo for it and then advertise it on forums or threads related to this. I'm building a "head unit" using an android phone and a custom 3d printed mount that slots in the craddlle. When I have everything finished I want to make it available as well.

Bixio Rimoldi

unread,
Jun 30, 2025, 9:14:39 AMJun 30
to bmw-canbus
I suspect that the UART is the LIN, but I can't verify since I don't have a craddle. Thanks for the suggestion on publishing, it sounds like a good idea. 
Reply all
Reply to author
Forward
0 new messages