BlueWave Studio forum
  • Login
  • Register
  • Login Register
    Login
    Username:
    Password:
  • Home
  • Help
  • View Today's Post
  • More
    • BlueWave Studio
    • Shop
User Links
  • Login
  • Register
  • Login Register
    Login
    Username:
    Password:

    Quick Links Home Help View Today's Post
    More
    • BlueWave Studio
    • Shop
    BlueWave Studio forum Hardware for head-unit Other Hardware Idrive F30/10 7 buttons NO TOUCH Working codes

    Idrive F30/10 7 buttons NO TOUCH Working codes
    nauttor
    Offline

    Junior Member

    Posts: 13
    Threads: 3
    Joined: Feb 2021
    Reputation: 0
    #1
    03-08-2021, 10:07 PM (This post was last modified: 03-10-2021, 04:50 PM by nauttor.)
    Hi, 

    I bought an Idrive F10/30 7 button model to make it work against the OAP pro 12. I know, not supported, do it yourself, don't ask for support, blah blah. 

    Anyway, if someone is interested in make it work and have the knowledge to use them within a script or whatever trick to make it work with OAP, here is the info and how to connect and initialize the device. 

    The Idrive in question is a BMW 6582 9286699-03 HW:01.01.00 SW02.03.01 Date:02.08.16 
    It is the 7 buttons version, not touch version, of F10/30, the one on the attached photo. 
       

    Now the how to make it work. 

    You need to have a canbus adapter working on the pi, like the mpc2515. 
    In the boot/config.txt you need to add:
    /boot/config.txt please add in order to activate the SPI and setup the "port":
    dtparam=spi=on
    dtoverlay=mcp2515-can0,oscillator=8000000,interrupt=25

    NOTE: in my case the adaptor came with an 8Mhz (8000000) crystal but you need to modify the value to the one you use. 

    Then you need to connect the idrive as follow:
    12V        -PIN1
    GND      -PIN2
    CAN_H   -PIN3
    CAN_L   -PIN4
    Note: the PIN numbers are visible printed in the case. 

    Then reboot your PI.

    After that you need to setup the interface for the desire idrive controller and speed. As is the new model it works in 500k(500000), the 1st gen works in 100k, so the command should be:

    ip link set can0 up type can bitrate 500000

    After that you are ready to connect to the can bus. You can check if all works as expected executing ifconfig.
    You should see your interfaces and one new interface called can0. 

    If you don't have the can-utils already installed, it's a good time to do it.
    sudo apt-get install can-utils 

    After that you can execute:
    candump can0

    You should see your idrive publishing every few seconds in a loop :
    can0  1AA  [8]  8F 17 F2 00 00 00 00 00

    That is your idrive alive. 

    Then you need to initialise the idrive. For that you need to publish:
    cansend can0 563#63 - that command alone makes the idrive to respond:
    can0  5E7  [8]  99 01 0A 00 06 00 00 01
      can0  267  [6]  E1 EA 00 00 C0 00
      can0  5E7  [8]  99 01 0A 01 06 00 00 00
      can0  567  [8]  00 00 00 00 00 00 00 67
      can0  5E7  [8]  99 01 0A 02 06 00 00 00
      can0  567  [8]  00 00 00 00 00 00 00 67
      can0  567  [8]  00 00 00 00 00 00 00 67
      can0  5E7  [8]  99 01 0A 03 06 00 00 00

    idrive will publish that 5E7#99 01 0A 01 06 00 00 00 ---3 times and then it goes to sleep again as we do not complete the initialisation.

    To complete the initialisation you need to respond to those 5E7 with the following command:
    cansend can0 273#1de100f0ff7fde01 
    If you don't sent that command you will see that all the buttons works, and the idrive publish the state, but the rotary knob don't work. So in order to make the rotary knob to work the sequence to initialise the idrive should be:

    cansend can0 563#63
    cansend can0 273#1de100f0ff7fde00 

    Take into account that the idrive afterward need to be asked to be awake with the command 
    cansend can0 563#63 every 2 seconds. If you don't maintain it awake and it goes to sleep the you need to send again both commands as before or the rotary knob will not work. 

    Just for the test, I'm not saying is a good practice, if you sent both commands every 2 seconds in a loop it will work always and the idrive publish the buttons and rotary knob state without any issue. 

    You can do that by executing:
    watch -n 2 "cansend can0 563#63 & cansend can0 273#1de100f0ff7fde00"

    That command will publish every 2 second both commands, and no matter what you do with the idrive you will see the reply in the candump log. 

    Now the codes related to the buttons:
    Note: the las byte is the ID of the button. The "XX" is a value that increments in a loop every time you press the button. 

    In order to control the dimmer led on the idrive yo can send:
    cansend can0 202#XX

    XX can be from "00" to "FD", "FE" to turn the led off. 

    ###In my case I have the following buttons: 

    #MEDIA - last byte ID 10
    >Press           ---- 267  [6]  E1 FD XX 01 C0 10
    >Release       ---- 267  [6]  E1 FD XX 00 C0 10
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 10

    #RADIO - last byte ID 08
    >Press           ---- 267  [6]  E1 FD XX 01 C0 08
    >Release       ---- 267  [6]  E1 FD XX 00 C0 08
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 08

    #TEL - last byte ID 40
    >Press           ---- 267  [6]  E1 FD XX 01 C0 40
    >Release       ---- 267  [6]  E1 FD XX 00 C0 40
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 40

    #NAV - last byte ID 20
    >Press           ---- 267  [6]  E1 FD XX 01 C0 20
    >Release       ---- 267  [6]  E1 FD XX 00 C0 20
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 20

    #MENU - last byte ID 01
    >Press           ---- 267  [6]  E1 FD XX 01 C0 01
    >Release       ---- 267  [6]  E1 FD XX 00 C0 01
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 01

    #BACK - last byte ID 02
    >Press           ---- 267  [6]  E1 FD XX 01 C0 02
    >Release       ---- 267  [6]  E1 FD XX 00 C0 02
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 02

    #OPTION - last byte ID 04
    >Press           ---- 267  [6]  E1 FD XX 01 C0 04
    >Release       ---- 267  [6]  E1 FD XX 00 C0 04
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 C0 04

    #Rotary Joystick push button:
    >Press           ---- 267  [6]  E1 FD XX 01 DE 01
    >Release       ---- 267  [6]  E1 FD XX 00 DE 01
    >Hold >2sec  ---- 267  [6]  E1 FD XX 02 DE 01

    #Rotary Joystick > Up, down, right, left:
    Press:
    >Up           ---- 267  [6]  E1 FD XX 1Y DD 01
    >Down       ---- 267  [6]  E1 FD XX 4Y DD 01
    >Right        ---- 267  [6]  E1 FD XX 2Y DD 01
    >Left          ---- 267  [6]  E1 FD XX 8Y DD 01
     As the rest of the buttons "Y" can be 1 for press, 2 for hold, 0 for release.

    >Release    ---- 267  [6]  E1 FD XX 00 DD 01

    #Rotary Knob clockwise/cclockwise:
    264  [6]  E1 FD XX YY 80 1E

    XX incremental value in a loop on every click.
    YY value increments or decrements +/-1 on every click on the knob. 


    All the info is related to the 7 buttons idrive, but as I read in other forums the 5 buttons version works the same way even with the same IDs. If your Idrive have different named buttons the ID change to the following:
    IDs related to the last byte:
    08  AUDIO/RADIO
    10 MEDIA
    20 NAV
    01 MENU
    40 TEL
    04 OPTIONS
    02 BACK

    It would be great if Bluewave take this info into account, as it is clearly documented and is quite easy to modify/copy the actual code profile of the already integrated Gen1 idrive on AOP pro to add support for the idrive f10/30. 

    As I don't have the knowledge to code it by scripting or python or other language it will be great if someone can help on that. 

    Best regards.
    GSPW
    Offline

    Member

    Posts: 140
    Threads: 1
    Joined: Jan 2021
    Reputation: 6
    #2
    03-09-2021, 12:17 PM
    Wow, thanks a bunch for all this information!
    nauttor
    Offline

    Junior Member

    Posts: 13
    Threads: 3
    Joined: Feb 2021
    Reputation: 0
    #3
    03-11-2021, 01:50 PM
    (03-09-2021, 12:17 PM)GSPW Wrote: Wow, thanks a bunch for all this information!

    Not much interest from what I see.
    GSPW
    Offline

    Member

    Posts: 140
    Threads: 1
    Joined: Jan 2021
    Reputation: 6
    #4
    03-11-2021, 02:30 PM
    Well it's only been 3 days! Smile
    Did your car come with the iDrive controller as standard? Or did you create a full custom setup?
    nauttor
    Offline

    Junior Member

    Posts: 13
    Threads: 3
    Joined: Feb 2021
    Reputation: 0
    #5
    03-11-2021, 03:05 PM
    (03-11-2021, 02:30 PM)GSPW Wrote: Well it's only been 3 days! Smile 
    Did your car come with the iDrive controller as standard? Or did you create a full custom setup?

    New custom setup, PI4/4Gb, hifiberry dac+ pro, rear camera, bluetooth CSR 4.0, GPS, usb green+mic, Raspberry Auto on/Off v2.1 from Tindie, Rasp orig 7" inch screen.  All to be installed in an E82 as much as Oem look that it can be. I installed the screen inside the CIC screen bracket on top of the dash and I'm trying to make it work with the idrive to appear as oem as it can. My car does not come with the idrive nor CIC, but If I get to make it work I'll integrate it in the center console.
    GSPW
    Offline

    Member

    Posts: 140
    Threads: 1
    Joined: Jan 2021
    Reputation: 6
    #6
    03-11-2021, 06:15 PM
    It all sounds great, please make a thread about your project once you start installing it into the car!

    What do you plan to do audio-wise (stock system or aftermarket amps etc)? Will you retain the OEM radio?
    nauttor
    Offline

    Junior Member

    Posts: 13
    Threads: 3
    Joined: Feb 2021
    Reputation: 0
    #7
    03-11-2021, 07:33 PM
    (03-11-2021, 06:15 PM)GSPW Wrote: It all sounds great, please make a thread about your project once you start installing it into the car!

    What do you plan to do audio-wise (stock system or aftermarket amps etc)? Will you retain the OEM radio?

    Stock system, at least for now. The oem system came with the AUX so I'll tap there the hifiberry. The BMW onboard bluetooth works really bad with my android, so my intention is to use the OAP but as others I experience an awful lot of echo on the callers side, but there's no solution, others asked too about that in other thread...
    oolong
    Offline

    Junior Member

    Posts: 28
    Threads: 5
    Joined: Mar 2022
    Reputation: 0
    #8
    03-30-2022, 07:17 PM
    (03-11-2021, 01:50 PM)nauttor Wrote:
    (03-09-2021, 12:17 PM)GSPW Wrote: Wow, thanks a bunch for all this information!

    Not much interest from what I see.

    I just wanted to say that your post helped me a LOT....  I was stuck all day on this controller until I saw your post, now I see a light at the end of the tunnel.
    Randy2576
    Offline

    Junior Member

    Posts: 31
    Threads: 6
    Joined: Mar 2023
    Reputation: 2
    #9
    03-19-2023, 12:17 AM
    I know this post is a year old, but would be interested to know if you ever got the iDrive installed and working on your rig?
    « Next Oldest | Next Newest »

    Users browsing this thread: 1 Guest(s)



    • View a Printable Version
    • Subscribe to this thread
    Forum Jump:

    Home · Help · BlueWave Studio · Shop

    Copyright © bluewavestudio.io. All rights reserved.

    Linear Mode
    Threaded Mode