QNX Development for CIC

doublespaces

Administrator
Oct 18, 2016
9,310
4,342
0
AZ
Ride
2009 E93 335i
This thread has been moved to the Public technical forum where it should get indexed.
 

aus335iguy

Colonel
Nov 18, 2017
2,256
806
0
Down under
Ride
335i DCT 2009
So ladies and gents... We have a problem and im hoping that you CIC devs can help !!!!
The scene...
The BMW DCT is the same in the M3 and in the 335i and 135i. The differences in how they were implemented in the M cars though is astounding. One of the things we’ve figured out along the way is that by adding the m3 shifter and flashing the m3 software it slams into gear like a race car. The only problem is that when you do all this you lose launch control because you need a specific byte to come via PT-CAN from the DME. That byte comes from the DME when a power mode is selected by pressing a button OR by activating the M drive menus in the CIC
The challenge...
Would there be any way after activating the the mdrive power modes for the CIC to send this byte when the menu is selected instead of requesting it from the DME ?
See thread here for shifter conversion and background
https://bmw.spoolstreet.com/threads/my-dct-conversion-to-m3-gws-flash.2929/
And this one for pid on CAN
To emulate the M-Power button:

Address 0x399 byte 2, bits 4-7 Decimal Value 1 is off, 2 is M-Power
Address 0x399 byte 1, bits 0 and 1. 1 is off, 2 is M-Drive
More information from here
https://bmw.spoolstreet.com/threads/m3-dct-wiring-diagram.2673/page-2
Myself, @doublespaces @dyezak and @Blue335is can help and guide ..

So is anyone able to help ?
 

p0lar

New Member
Mar 20, 2018
1
0
0
Ride
2011 E90 M3
Are there any further discussions on this topic in a private section of the forum? I'm interested in chipping in here as well now that I've got access to my own CIC.
 

Deadknight

Lurker
Jul 29, 2017
24
14
0
Are there any further discussions on this topic in a private section of the forum? I'm interested in chipping in here as well now that I've got access to my own CIC.

There are lots of unknowns to system and it requires a lot of time to research them near car (for me at least). There are some knowledge in private section, if you are willing to start researching it.
 
Last edited:

thegriffen

New Member
Mar 19, 2018
9
29
0
Camas, WA
Ride
2010 e92 335xi
Hey guys, I've been thinking about trying to work on some projects relating to the CIC. I've been lurking around the excellent threads here for a little while, and I keep getting taunted by the "Setting up development environment" private thread. Is there any way I could get access to that?
Thanks in advanced. I look forward to being able to contribute some of my own work to the community.
 

doublespaces

Administrator
Oct 18, 2016
9,310
4,342
0
AZ
Ride
2009 E93 335i
Hey guys, I've been thinking about trying to work on some projects relating to the CIC. I've been lurking around the excellent threads here for a little while, and I keep getting taunted by the "Setting up development environment" private thread. Is there any way I could get access to that?
Thanks in advanced. I look forward to being able to contribute some of my own work to the community.

I took care of it. Just be sure to share your findings.
 

Tagra

New Member
Jun 4, 2018
1
1
0
Ride
F11
Hello,
Same as post above, found this thread though Google. If possible add me to dev thread / section.
Thanks !
 
  • Like
Reactions: doublespaces

vtomyy

New Member
Jan 31, 2019
2
1
0
Ride
BMW F31
Attached is autorun script for usb (encrypted) which calls run.sh from USB (only the one in glove box works in F30, don't know about EXX).

Need to put both scripts in / of FAT32 formatted USB drive

copie_scr.sh has this inside
Code:
cd /fs/usb0
./run.sh

C code to encrypt/decrypt
Code:
#include <stdio.h>

unsigned int seed = 0x001be3ac;

unsigned int prng_rand() {
unsigned int r1, r3, r0;

r0 = seed;
r1 = (seed >> 1) | (seed << 31);
r3 = ((r1 >> 16) & 0xFF) + r1;
r1 = ((r3 >> 8) & 0xFF) << 16;
r3 -= r1;
seed = r3;

return r0;
}

int main(int argc, char *argv[]) {
int c;

prng_rand();

c = getchar();
while (c != EOF) {
c ^= (prng_rand() & 0xFF);
putchar(c);
c = getchar();
}
}
Hello,
I would like to copy the .ans files from the /tts/ folder. According to your post I created a run.sh file and I used your copy_scr.sh, but it does not work.
Is my run.sh correct?

copie_scr.sh:
Code:
cd /fs/usb0
./run.sh

run.sh
Code:
#!/bin/ksh
USB0=$(mount -l | grep -i usb0)
mount -u /fs/usb0
mount -r /mnt/cic3
echo remounted for full access

cp -v -r /mnt/cic3/speech/tts/* /fs/usb0/
 
  • Like
Reactions: Xer0449

e90reborn

Lurker
Nov 5, 2018
13
2
0
Ride
BMW 335i E90 2010
does anyone have a sample code to read CAN data ?
i am thinking about having an arduino writing CAN data to generate custom alerts in CIC, like "low level alert" for methanol aux tank.
 

doublespaces

Administrator
Oct 18, 2016
9,310
4,342
0
AZ
Ride
2009 E93 335i
Not sure how to do it with arduino but if you look up FTDI you can write your own drivers for the chips that are in every OBD cable. I once wrote an android app that could read the msd rom. You just need to find the can address if the cic and send it. You'd need to know Java though.
 

NoQuarter

Major
Nov 24, 2017
1,662
1,066
0
Indiana, USA
Ride
Z4 35is, 535xi, X5 35i
Reading and writing on the can bus is actually the easy part. Getting the addresses and, even harder, figuring out the data packet encoding.

I would have to say .. if your first question is how to read can data the actual data part of the problem might be a stretch.

Triggering an existing alert will be a significant achievement. Creating a custom message? That is a very big task.
 
  • Agree
Reactions: doublespaces