MembersPage/GergelyLezsak/BMWTrigger (2014-07-29 11:53:04)

BMW triggers

I plan to summarize common BMW trigger info on this page.

Crank trigger on BMW engines from the 80's is 60-2 teeth inductive (VR). Engine codes are M10, M20, M30

First generation of camshaft pulse sender is an inductive pickup on the HV ignition cable for cylinder #1.

This appeared on later M20, M30 engines.

Second generation of cam pulse senders is inductive (VR) pickup on the camshaft end, single pulse before cyl #1 TDC. Apparently pulse is at the same time when the missing teeth are on the crank trigger. Engine codes: S38, M50

Scope printout of an S38 signal:

s38-trigger-scope.jpg

Apparently this coincidence of cam signal and missing teeth is problematic to synchronize on current VEMS firmwares. The cause is that secondary (cam) pulse is sometimes processed earlier than the first crank pulse, but sometimes later.

Triggerlog of this situation (from M50B25 non-vanos engine):

http://quasar.dynaweb.hu/~lezsi/vems/bmwtrigger/v3.3_u006408-2013-10-19-14.23.17.triggerlog

AFAIK the only solution with current firmware is running crank-trigger only, and wasted spark. (ignoring secondary trigger). This results in a simple 60-2 setup, running fine.


Triggerlog captured in 19200 baud is only good for cranking (at least with 36-1, 60-2 or higher toothcount), as a limitation of serial throughput. Beyond cranking RPM, switch to higher baudrate See the first sentence of the [related help]

- Thanks, I know this speed limitation, however I thought these logs were made @57600 baud. Is the connection speed stored in the log?

http://quasar.dynaweb.hu/~lezsi/vems/bmwtrigger/v3.3_u006408-2013-10-19-16.28.17.triggerlog

This is a log of an engine startup and running fine without missing events or trigger errors in vemstune.


Trigger log of a BMW M44B19 engine (crank VR + cam HALL)

Primary trigger is BMW standard of 60-2 teeth, while cam trigger is 4 teeth with different length for this engine.

Scope measurement of the log:

https://drive.google.com/open?id=0B_SvHmHLyXE2YXFYTllQNDlDb0k&authuser=0

Triggerlog pic:

https://drive.google.com/open?id=0B_SvHmHLyXE2YWRMc1VyQ19QOGM&authuser=0

Triggerlog:

https://drive.google.com/open?id=0B_SvHmHLyXE2YVBqdHRlMS1pNzQ&authuser=0

Relevant cfg:

https://drive.google.com/open?id=0B_SvHmHLyXE2aDgwdDNaYXRsMEE&authuser=0

I have difficulties setting secondary trigger. Using rising edge, the signal comes after the 14th primary teeth, so "secignore" value of ~15-20 seemed to be a good idea (with or without using sectrig minimum/maximum angle between 80-100 degrees). Still I cannot get this sorted, all I get is various trigger position errors in triggerlog.

Any ideas how to get this working?

I'm on fw. version 1.2.16 . (tried to go to fresh 1.2.2x versions, but all of them is missing the vems.hex file, so VemsTune couldn't do firmware update).

Answers in relevant sharing report

http://vems.hu/vemstune/bugreports/reports.php?cmd=view&key=Kn5Sgq

- Apparently changing firmware version to latest 1.2.27 solved this trigger issue, thanks. (needed to upgrade bootloader and lock AVR fuses first)

However a strange behavior happened today: After a few normal cranking attempts, the ECU refused to leave bootmode, and firmware verify reported that firmware in flash is corrupt. Re-uploading firmware solved the problem, still its frightening to know it can happen -I've never experienced such before.

Background info: I've serious missfire problems on this car, the engine hardly even running.