Page 1 of 1

Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Thu Aug 13, 2020 5:04 pm
by thedean
Hi guys,

I am looking to see if i can do a Alpha-N tune for my S54 ITB S52 (3.2liters) using the Bosch M3.3.1 506 DME.

I am looking at a 965 chip definition and BIN and I see there is a MAF-related limp mode map. This appears to be a transfer function between TPS % and load. Can anyone confirm? If so, could someone confirm what the formula is for CC (TPS % Position?).

If so, what do the values in the table represent? I am guessing the values are a VE% representation (raw value over 128?) of what the theoretical airmass Q (at 100%VE) would be at at the given RPM and throttle position?

For example the 506 ECU may calculate that at 4800RPM at 100%VE the airmass in in kg/hr would be 529kg/hr. The value in the 506 bin in the MAF table i see at 4800rpm and 100% TPS is 160.

Therefore, I assume the value of 160 does the following modification to the Q:
160/128 = 125%
125% * 529kg/hr = Load is 661.25kg/hr

Let me know if im way off base...


Also, i am finding this table located @DBB0:
D0 06 , 6 rows RPM
CC 07, 7 columns TPS position

If the above is true and some folks can help me with what the values in the table represent, my thought process is the following to resize the table to say 16x16 for greater resolution:

I'll move the map pointer at the end of the code to say...B980

Make it say a 16x16 table...
RPM - D0 10
Load CC 10


Thanks,

Michon

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Wed Aug 19, 2020 1:19 pm
by thedean
Any feedback?

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Sat Aug 29, 2020 2:57 pm
by Evil

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Mon Aug 31, 2020 12:17 pm
by olafu
Bigger tables are slower to read. M3.3.1 reads first biggest axis values, and makes comparison again and again, until actual values are reached, then it makes interpolation. Fastest way out from table reading is when both axes are maxed out. If ecu goes too busy, it will reset itself.

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Tue Sep 15, 2020 1:43 pm
by thedean
olafu wrote: Mon Aug 31, 2020 12:17 pm Bigger tables are slower to read. M3.3.1 reads first biggest axis values, and makes comparison again and again, until actual values are reached, then it makes interpolation. Fastest way out from table reading is when both axes are maxed out. If ecu goes too busy, it will reset itself.
Olafu, I am not understanding your point. Are you saying that by expanding the limp mode map to the size of a normal fuel or ignition table of 16x12, I am at risk of making the ECU to slow to read the table and it may reset itself?

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Tue Sep 15, 2020 1:47 pm
by thedean
Evil wrote: Sat Aug 29, 2020 2:57 pm Check here:

http://forum.tunerpro.net/viewtopic.php?f=12&t=4419
Thanks, good stuff in that thread. So what is the max RPM we can spin the engine to with the M3.3.1 ECU?

Re: Bosch M3.3.1 506-965 Alpha-N MAF Limp Mode map

Posted: Wed Sep 16, 2020 8:17 am
by olafu
Quotes from my tests:
"with maf fault mode (alpha n) max rpm with internal rom: 7980rpm. :roll:" (without cam signal)
"max rpm with internal rom: 8340rpm" (with MAF, without cam signal)

I didn't test what happens when table sizes are expanded.

Internal rom means that the test was done by using unmodified M3.3.1 hardware.
There is one pin on the CPU to force it to read all data from external ROM, but it is significantly slower. All frequently used functions (e.g. 2D and 3D table reading routines) are stored in MCU's internal ROM, address space from 0x2000 to 0x3FFF.

From MCU user manual:
"The execution times for the instruction set are given in
Figure 3-3. These times are given for a 16-bit bus with
no wait states. On-chip EPROM/ROM space is a 16-
bit, zero wait state bus. When executing from an 8-bit
external memory system or adding wait states, the CPU
becomes bus limited and must sometimes wait for the
prefetch queue. The performance penalty for an 8-bit
external bus is difficult to measure, but has shown to be
between 10 and 30 percent based on the instruction
mix."

If ECU self-resetting will become a problem, i think you can try to reduce size of unnecessary tables, or change axis data so they are maxed out in any conditions. It's also possible to disable unnecessary functions from code, but it's difficult to explain how and where. It needs understanding of assembly code and requires disassembler. I tested it with very little and high varying rate of success.. :roll: