F55/F56 :: Hatch Talk (2014+) MINI Cooper and Cooper S (F55/F56) hatchback discussions.

F55/F56 Top brake bulb (filament) in left/right tail lamp assemblies - what turns it on?

Thread Tools
 
Search this Thread
 
  #51  
Old 12-29-2021, 08:46 AM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
Well. I just did something wrong.
I reverted
MAPPING_BRAKEFORCED_2_L_OUTPUT -> 0x00
MAPPING_BRAKEFORCED_2_R_OUTPUT -> 0x00
That proved it created the upper blinking by elimination.


Upon returning
MAPPING_BRAKEFORCED_2_L_OUTPUT -> bfd_l
MAPPING_BRAKEFORCED_2_R_OUTPUT -> bfd_r
My top brake lamps turn off during panic stop, and dont blink now.

Backups didn't help.

I went back to not BFD for now until I figure out what happened.

How did you get the Data dumps you displayed in post #36??


 
  #52  
Old 12-29-2021, 09:37 AM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
So ESS_AKTIVIERBARER_AUSGANG to blikend activates Brake force blinking

Setting
MAPPING_BRAKEFORCED_1_L_OUTPUT -> bl_l
MAPPING_BRAKEFORCED_1_R_OUTPUT -> bl_r
Away from fra directs brake force blinking to lower brake lights
Off and On
Setting
MAPPING_BRAKEFORCED_2_L_OUTPUT -> bfd_l
MAPPING_BRAKEFORCED_2_R_OUTPUT -> bfd_r
directs brake force blinking to upper brake lights.
Off and On

It worked before!!!
I undid and redid the BRAKEFORCED_2

So somewhere in the BRAKEFORCED_2 path there's something amiss.
It goes Off but not On

I checked MAPPING_BREMSL_1_ MAPPING_BREMSL_2_
They are set to bl and
bfd as they should
That would be the On

So now the Off is working but not the on

 
  #53  
Old 12-29-2021, 09:53 AM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
Well. I just did something wrong.
I reverted
MAPPING_BRAKEFORCED_2_L_OUTPUT -> 0x00
MAPPING_BRAKEFORCED_2_R_OUTPUT -> 0x00
That proved it created the upper blinking by elimination.


Upon returning
MAPPING_BRAKEFORCED_2_L_OUTPUT -> bfd_l
MAPPING_BRAKEFORCED_2_R_OUTPUT -> bfd_r
My top brake lamps turn off during panic stop, and dont blink now.

Backups didn't help.

I went back to not BFD for now until I figure out what happened.

How did you get the Data dumps you displayed in post #36??
Originally Posted by TVPostSound
So ESS_AKTIVIERBARER_AUSGANG to blikend activates Brake force blinking

Setting
MAPPING_BRAKEFORCED_1_L_OUTPUT -> bl_l
MAPPING_BRAKEFORCED_1_R_OUTPUT -> bl_r
Away from fra directs brake force blinking to lower brake lights
Off and On
Setting
MAPPING_BRAKEFORCED_2_L_OUTPUT -> bfd_l
MAPPING_BRAKEFORCED_2_R_OUTPUT -> bfd_r
directs brake force blinking to upper brake lights.
Off and On

It worked before!!!
I undid and redid the BRAKEFORCED_2

So somewhere in the BRAKEFORCED_2 path there's something amiss.
It goes Off but not On

I checked MAPPING_BREMSL_1_ MAPPING_BREMSL_2_
They are set to bl and
bfd as they should
That would be the On

So now the Off is working but not the on
I hand-created those data dumps -- as I've been working I've been documenting both before and after values with screen shots, and then dumping it all into an Excel spreadsheet. So what you see in post #36 is from the spreadsheet.

The values I've been focused on control light power levels and function, but don't offer much that screams "blink" -- clearly ESS_AKTIVIERBARER_AUSGANG does what you've observed, but maybe there's another piece of control somewhere that hasn't been identified.

Here's the full dump of what I've documented for stock values for left/right brake lighting control. These were all taken from surveying my car, pre-modification. I don't have the top center light documented (but I haven't tinkered with it either, so nothing to see there).


SECTION (306x) | PARAMETER (MAPPINGx) | HEX VALUE DESC | HEX VALUE

3064 LceLampMapping3 MAPPING_BREMSL_1_L_OUTPUT bl_l 0x18
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PART_OF initwert 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_FUNCTION bremslicht 0x0C
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PRIORITY priority_2 0x02
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PWM_1_STANDARD 12.7V 0x7F
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PWM_2 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PWM_3 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PWM_4 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_PWM_5 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_FIXED_PWM pwm 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_OFF_MODE off 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_IGR_RELEVANT not_active 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_DEPENDENCY_FUNC function_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_DEPENDENCY_PWM level_nr 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_SPARE_OUTPUT spare_channel_1 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_SPARE_PWM initwert 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_DIMMED not_active 0x00
3064 LceLampMapping3 MAPPING_BREMSL_1_L_DISABLE_OUTPUT initwert 0x00
------DONE, DUPLICATE IN R-------
3065 LceLampMapping4 MAPPING_BREMSL_2_L_OUTPUT bfd_l 0x1A
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PART_OF initwert 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_FUNCTION bremslicht 0x0C
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PRIORITY priority_2 0x02
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PWM_1_STANDARD 12.7V 0x7F
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PWM_2 pwm_1 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PWM_3 pwm_1 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PWM_4 off 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_PWM_5 pwm_1 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_FIXED_PWM pwm 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_OFF_MODE off 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_IGR_RELEVANT not_active 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_DEPENDENCY_FUNC off 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_DEPENDENCY_PWM level_nr 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_SPARE_OUTPUT spare_channel_1 0x00
3065 LceLampMapping4 MAPPING_BREMSL_1_L_SPARE_PWM initwert 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_DIMMED not_active 0x00
3065 LceLampMapping4 MAPPING_BREMSL_2_L_DISABLE_OUTPUT initwert 0x00
------DONE, DUPLICATE IN R-------
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_OUTPUT fra_h_l 0x20
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PART_OF initwert 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_FUNCTION bfd 0x0D
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PRIORITY priority_2 0x02
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PWM_1_BFD 13.7V 0x89
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PWM_2_ESS_1 12.7V 0x7F
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PWM_3_ESS_2 12.7V 0x7F
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PWM_4 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_PWM_5 pwm_1 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_FIXED_PWM pwm 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_OFF_MODE off 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_IGR_RELEVANT active 0x01
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_DEPENDENCY_FUNC off 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_DEPENDENCY_PWM level_nr 0x04
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_SPARE_OUTPUT spare_channel_1 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_SPARE_PWM initwert 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_DIMMED not_active 0x00
3064 LceLampMapping3 MAPPING_BRAKEFORCED_1_L_DISABLE_OUTPUT initwert 0x00
------DONE, DUPLICATE IN R-------
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_OUTPUT off 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PART_OF initwert 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_FUNCTION bfd 0x0D
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PRIORITY priority_1 0x01
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_1_BFD Ersatzwert & 100% 0x64 & 0x64
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1 Ersatzwert & 100% 0x64 & 0x64
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2 Ersatzwert & 100% 0x64 & 0x64
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_4 0V 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_5 pwm_1 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_FIXED_PWM pwm 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_OFF_MODE off 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_IGR_RELEVANT not_active 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_DEPENDENCY_FUNC off 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_DEPENDENCY_PWM level_nr 0x04
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_SPARE_OUTPUT spare_channel_1 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_SPARE_PWM initwert 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_DIMMED not_active 0x00
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_DISABLE_OUTPUT initwert 0x00
------DONE, DUPLICATE IN R-------
 

Last edited by cjv2; 12-29-2021 at 11:22 AM. Reason: Corrected editing goof made on MAPPING_BRAKEFORCED_2_L_PWM_1_BFD
  #54  
Old 12-29-2021, 09:57 AM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
So ESS_AKTIVIERBARER_AUSGANG to blikend activates Brake force blinking
So now the Off is working but not the on
@TVPostSound maybe check the PWM values and see if any have spontaneously changed from stock (there's always the possibility that operationalizing them in the way we are might prompt the code to adjust values we're not watching)?

I notice MAPPING_BRAKEFORCED_2_L[R]_PWM_2_ESS_1 and MAPPING_BRAKEFORCED_3_L[R]_PWM_2_ESS_2 in particular -- they appear to be unique both in naming and in having not one but two selected values apiece. I also notice the "ESS" inclusion that presumably correlates somehow with ESS_AKTIVIERBARER_AUSGANG.
 
  #55  
Old 12-29-2021, 10:00 AM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_1_BFD custom value 0x3C

I read above this is your new value
 
  #56  
Old 12-29-2021, 10:11 AM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
Originally Posted by cjv2
@TVPostSound maybe check the PWM values and see if any have spontaneously changed from stock (there's always the possibility that operationalizing them in the way we are might prompt the code to adjust values we're not watching)?

I notice MAPPING_BRAKEFORCED_2_L[R]_PWM_2_ESS_1 and MAPPING_BRAKEFORCED_3_L[R]_PWM_2_ESS_2 in particular -- they appear to be unique both in naming and in having not one but two selected values apiece. I also notice the "ESS" inclusion that presumably correlates somehow with ESS_AKTIVIERBARER_AUSGANG.

ESS=Emergency Signal System
AKTIVIERBARER= Activate
AUSGANG= Output
 
The following users liked this post:
cjv2 (12-29-2021)
  #57  
Old 12-29-2021, 11:20 AM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
3065 LceLampMapping4 MAPPING_BRAKEFORCED_2_L_PWM_1_BFD custom value 0x3C

I read above this is your new value
Ack, good catch, you are correct, that was an editing goof on my side -- I'll correct that in posts #36 and #53 -- thank you!!

UPDATE: corrections to post #36 and #53 made!
 

Last edited by cjv2; 12-29-2021 at 11:28 AM.
  #58  
Old 12-29-2021, 11:28 AM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
ESS=Emergency Signal System
AKTIVIERBARER= Activate
AUSGANG= Output
Taking a wild guess:
  • Based on the ESS correlation, the default use of "Ersatzwert" alongside an actual power level setting -- meaning there are two values simultaneously specified (Ersatzwert 0x64 & 100% 0x64), not one -- is critical for parameters MAPPING_BRAKEFORCED_2_L[R]_PWM_2_ESS_1 and MAPPING_BRAKEFORCED_2_L[R]_PWM_2_ESS_2 when MAPPING_BRAKEFORCED_2 is being used as to control BFD lighting.
  • Since these parameters are also using nonzero power level settings (the 100% 0x64 part), I'd guess that those nonzero power level settings are controllers of the "on" voltage.
What are you showing for these right now on your car?
  • MAPPING_BRAKEFORCED_2_L_PWM_1_BFD
  • MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1
  • MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2
  • MAPPING_BRAKEFORCED_2_L_PWM_4
  • MAPPING_BRAKEFORCED_2_L_PWM_5
  • MAPPING_BRAKEFORCED_2_L_FIXED_PWM
 
  #59  
Old 12-29-2021, 11:35 AM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
Ill look, but as BRAKEFORCED_1 works on the bottom, shouldn't BRAKEFORCE_2 have the same settings??

BRB
 
  #60  
Old 12-29-2021, 11:45 AM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
Ill look, but as BRAKEFORCED_1 works on the bottom, shouldn't BRAKEFORCE_2 have the same settings??

BRB
I would have thought so, but that's not what I found on my car. On my F56S, BRAKEFORCED_1 and BRAKEFORCED_2 absolutely have different default PWM settings (2 of the PWM parameters are even named differently on 1 vs 2, referencing ESS explicitly on 2 but not on 1).

Not sure why but bound to be important...
 

Last edited by cjv2; 12-29-2021 at 12:09 PM.
  #61  
Old 12-29-2021, 12:00 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Cornering Lamp coding - stock LED scenario

Earlier in-thread I promised how-to on how I activated the cornering lamp function on my F56S. Here it is, and full credit where credit is due:If you don't have the additional corner light shown in the photo (I do not) and you have LED headlamps, your LED headlamps don't do the corner-illumination thing. You are reliant upon using the LED fog lamps for cornering lights (if that functionality is activated).

This how-to allows you to activate the cornering light functionality.

BIG ALERTS:
  1. THIS INSTRUCTION SET PRESUMES DEFAULTS THAT ARE SPECIFIC TO THE US MODEL MINI. (thank you @TVPostSound for the alert!)
  2. RECORD THE VALUES OF ALL FUNCTIONS YOU TINKER WITH BEFORE YOU TINKER WITH THEM. SCREEN SHOT THEM, WHATEVER IT TAKES.
  3. Disclaimer: this is what I did to my car. Anything you do to yours is at your own risk -- no promises and no responsibility taken here!
  4. All instructions below are based on using Bimmercode's Expert Mode. In Bimmercode, these changes CANNOT be made without Expert Mode.
  5. My car has the following. If your car has other equipment, this how-to may not apply or may require tweaking.
    • the stock self-adjusting LED headlamps (they adjust up/down, but do not adjust left/right) WITHOUT cornering lamps inside the headlamp assemblies;
    • the stock LED fog lights.
How I: made my front fogs act as cornering lights.
For reference:
- kl = likely "kurvenfahrlicht" = cornering lights
- li = likely "links" = left

- re = likely "rechts" = right
- output device 0x03 = tagfahrlicht l = left daytime running lights (DRL)
- output device 0x04 = tagfahrlicht r = right daytime running lights (DRL)

- output device 0x0B = nsw_l = nebelscheinwerfer l = left fog light
- output device 0x0C = nsw_r = nebelscheinwerfer r = right fog light
- TMS = LED Headlights (stepper motors for the Adaptive LED Headlights and LEDs for the side marker light, the positioning light, and the turn indicator). See this page about BMW control units and abbreviations for this detail.
  1. Find your way to the BDC (Body Domain Controller)
  2. Under 3062 LceLampMapping1:
    Change MAPPING_ABBIEGEL_L_OUTPUT from off 0x00 to Custom value 0x03 (change cornering light left output from off to DRL left - see explainer at end)
    Change MAPPING_ABBIEGEL_R_OUTPUT from off 0x00 to Custom value 0x04 (change cornering light right output from off to DRL right - see explainer at end)
  3. Under 3066 LceTmsCoding1:
    Change KL_ENABLE_LI from KL_Aus 0x00 to KL_Ein 0x01 (enable left cornering light)
    Change KL_ENABLE_RE from KL_Aus 0x00 to KL_Ein 0x01 (enable right cornering light)
  4. Under 3073 LaMaster1:
    Locate C_BLC_ENA and:
    • Enable (select) F015_enable 0x01
    • This will also automatically change the following additional values, you'll see this happen on-screen:
      • F015_disable 0x00 will be deselected
      • F045_disable 0x00 will be deselected
      • F056_disable 0x00 will be deselected
      • I001_disable 0x00 will be deselected
      • M013_disable 0x00 will be deselected
      • F045_stat_Kurvenfahrlicht 0x01 will be selected
      • F056_state_Kurvenlicht 0x01 will be selected
  5. Under 3073 LaMaster1:
    Locate C_CLC_ENA and:
    • Enable (select) F015_enable 0x01
    • This will also automatically change the following additional values, you'll see this happen on-screen:
      • F015_disable 0x00 will be deselected
      • F045_disable 0x00 will be deselected
      • F056_disable 0x00 will be deselected
      • I001_disable 0x00 will be deselected
      • M013_disable 0x00 will be deselected
      • F045_enable 0x01 will be selected
      • F056_enable 0x01 will be selected
  6. Finally, commit all these changes (code them). When the coding process is complete (the app will tell you, wait for it unless you want to take unnecessary risks), your front fogs should operate as cornering lights.
If you wish to test whether the coding worked, I have verified the following on my F056 works for testing.
Prerequisite test steps:
  1. Turn the ignition on. The engine does not have to be running, but the ignition has to be on to get to the next step.
  2. Turn on the headlights (the cornering function won't do anything while the headlights are off, so far as I can tell).
  • If you are using the Auto setting, convince the car that it is dark enough that it needs to turn the headlights on. You need the headlights on!
Test steps (do these while standing still or at low speed -- cutoff may be 25MPH but I'm not sure. Standing-still test is simpler ):
  1. Activate the turn signal (NOT the "flash-to-pass"). You should see the same-side fog light "dim up" to full brightness. It should "dim down" when the turn signal is deactivated.
  2. Turn the steering wheel off-center. You should see the same-side fog light "dim up" to full brightness. It should "dim down" when the steering wheel is returned to center.
  3. Put the car in reverse gear. Both left and right fog lights should activate. When you take the car out of reverse gear, both left and right fog lights should deactivate.
Regarding the odd output device mapping -- one might wonder why the specified output for the cornering lights is specified as 0x03 and 0x04 (l/r tagfarlicht outputs) rather than 0x0B and 0x0C (l/r fog lamp outputs). I don't know, but I have a theory (someone jump in and correct me if I'm off the mark here).
  • What I think is happening is this: cornering light output --> TMS by way of the DRL pointer --> C_BLC_ENA/C_CLC_ENA --> fog lights 0x0B / 0x0C.
  • Again, I can't prove this: it's just a theory.
  • I did try setting MAPPING_ABBIEGEL_L_OUTPUT and MAPPING_ABBIEGEL_R_OUTPUT to 0x0B and 0x0C, respectively. Cornering lights did not work in that configuration.
THAT'S IT! Hey @renchjeep , enjoy
 

Last edited by cjv2; 01-09-2022 at 09:46 AM. Reason: Corrected a section title and removed an errant line -- post is for cornering lights, not rear fog handling
  #62  
Old 12-29-2021, 12:08 PM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
Originally Posted by cjv2
I would have thought so, but that's not what I found on my car. BRAKEFORCED_1 and BRAKEFORCED_2 absolutely have different default PWM settings. Not sure why but bound to be important...
  • MAPPING_BRAKEFORCED_2_L_PWM_1_BFD
  • MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1
  • MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2
  • MAPPING_BRAKEFORCED_2_L_PWM_4
  • MAPPING_BRAKEFORCED_2_L_PWM_5
  • MAPPING_BRAKEFORCED_2_L_FIXED_PWM
Are the same as yours

IGR and Priority are different between BRAKEFORCED_1 and BRAKEFORCED_2
If they serve the same function but on different lamp sets, though the lamps are identical in BREMSL
It would make sense to match the 2??

But, you cant confirm BRAKEFORCED_2 works in the same manner on yours, as I had set. (Upper lights blinking)
So something somewhere has changed!!
 
  #63  
Old 12-29-2021, 12:15 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
  • MAPPING_BRAKEFORCED_2_L_PWM_1_BFD
  • MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1
  • MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2
  • MAPPING_BRAKEFORCED_2_L_PWM_4
  • MAPPING_BRAKEFORCED_2_L_PWM_5
  • MAPPING_BRAKEFORCED_2_L_FIXED_PWM
Are the same as yours

IGR and Priority are different between BRAKEFORCED_1 and BRAKEFORCED_2
If they serve the same function but on different lamp sets, though the lamps are identical in BREMSL
It would make sense to match the 2??

But, you cant confirm BRAKEFORCED_2 works in the same manner on yours, as I had set. (Upper lights blinking)
So something somewhere has changed!!
I noticed the IGR difference as well (I wish I knew what IGR was, haven't figured that out yet). I hadn't noticed the PRIORITY difference -- good catch. I still have not figured out how the PRIORITY values work either, unfortunately.

Also correct that I can't confirm BRAKEFORCED_2 works in the same manner on my car as you have set up: because I have repurposed BRAKEFORCED_2 from being unused on my car (factory default, oddly) to being secondary BREMSL output to the rear fogs. FWIW I didn't repurpose BREMSL_2 because it is providing by-default braking output (FUNCTION bremslicht 0x0C) to the top brake bulbs.

So yeah, something has changed in your setup. I wonder if there are some other ESS parameters that can be located and examined -- wouldn't change any of them, but it pretty much sounds like the blinking has decided it just doesn't want to "play blink anymore," and that in turn sounds like an on/off switch stuck in the off position to me.
 
  #64  
Old 12-29-2021, 12:17 PM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
Originally Posted by cjv2
I noticed the IGR difference as well (I wish I knew what IGR was, haven't figured that out yet).
Intelligent alternator control.

Meaningless!!

And
PWM_1_BFD Ersatzwert & 100% 0x64 & 0x64
Thats 10.0Volts
 

Last edited by TVPostSound; 12-29-2021 at 12:44 PM.
  #65  
Old 12-29-2021, 04:35 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
Intelligent alternator control.

Meaningless!!

And
PWM_1_BFD Ersatzwert & 100% 0x64 & 0x64
Thats 10.0Volts
FWIW it might not be 10.0 volts. Haven't seen that one in my US spec F56S, might be different outside the US though.

When I was documenting settings I also documented the "canned" options I saw presented by expert mode for various parameters, including PWM voltage parameters. The canned options were mostly consistent with each other across different light control sections, but I noted 2 things:
  1. Not always consistent. I found one hex value (0x3C) that was presented once as representing a percentage, and once as representing a specific fixed voltage.
  2. Even if/when consistent, the same hex value sent through different control sections that nevertheless routed to the same bulb caused different brightness at least once. For example:
    • Initially, to get the rear fogs as DRLs, I pointed MAPPING_TAGFAHRL_1_H_L[R]_OUTPUT to the rear fogs, and specified a value of 0x3C for MAPPING_TAGFAHRL_1_H_L_PWM_1_STANDARD.
    • Also initially, to get the rear fogs to also work as "non-daytime" running lights, I pointed MAPPING_STANDL_H2_L[R]OUTPUT to the rearfogs, and I also specifying a value of 0x3C for MAPPING_STANDL_H2_L_PWM_1_STANDARD.
    • Since the PWM_1 values were the same, one would have thought (especially given the table at the end of this post) that 0x3C = 0x3C and the voltage, and light output, would have been the same for the rear fogs (filament bulbs) whether DRL or "non-daytime" running lights.
    • Instead, the rear fogs were a LOT brighter when under control of TAGFAHRL_1_H than they were under control of STANDL_H2, despite the same PWM_1 specification. I had to throttle MAPPING_TAGFAHRL_1_H_L_PWM_1_STANDARD down to 0x14 to compensate.
So there is a certain YMMV with the PWM values, but here's what I documented for options presented in expert mode by Bimmercode.
  • This is not a comprehensive list for all PWM values, it's just the ones I noted where multiple options were presented up front, and then I documented for one reason or another.
  • Also, these are left-side values only, I would not assume that right-side is always the same.
MAPPING_BREMSL_2_L_PWM_1_STANDARD
  • 11.5V 0x73
  • 12.2V 0x7A
  • 12.7V 0x7F <- selected in unmodified config
  • 13.7V 0x89
  • 100% 0x64
  • 0V 0x00
  • off 0x00
MAPPING_BREMSL_2_L_PWM_4
  • 6.2V 0x3E
  • 70% 0x46
  • 100% 0x64
  • off 0x00 <- selected in unmodified config
MAPPING_NEBELSCHLUSSL_L_PWM_1_STANDARD
  • 13.4V 0x86
  • 13.5V 0x87
  • 13.7V 0x89 <- selected in unmodified config
  • 14V 0x8C
  • 60% 0x3C
  • 80% 0x50
  • 100% 0x64
MAPPING_NEBELSCHLUSSL_L_PWM_2_TRAILER
  • 4.3V 0x2B
  • 4.8V 0x30
  • 5.0V 0x32
  • 6.8V 0x44
  • pwm_1 0x00 <- selected in unmodified config
MAPPING_BRAKEFORCED_1_L_PWM_1_BFD
  • Ersatzwert 0x64 ('substitute value')
  • F30_US 0x70
  • 11.5V 0x73
  • 11.7V 0x75
  • 12V 0x78
  • 12.7V 0x7F
  • 13.7V 0x89 <- selected in unmodified config
  • 30% 0x1E
  • 40% 0x28
  • 100% 0x64
MAPPING_BRAKEFORCED_1_L_PWM_2_ESS_1
  • Ersatzwert 0x64 ('substitute value')
  • F20_ECE 0x7A
  • F30_ECE 0x89
  • 11.5V 0x73
  • 12.7V 0x7F <- selected in unmodified config
  • 12.9V 0x81
  • 13V 0x82,
  • 3.5V 0x87
  • 13.7V 0x89
  • 100% 0x64
MAPPING_BRAKEFORCED_1_L_PWM_3_ESS_2
  • Ersatzwert 0x64 ('substitute value')
  • F20_ECE 0x7A
  • F30_ECE 0x89
  • 11.5V 0x73
  • 12.7V 0x7F <- selected in unmodified config
  • 12.9V 0x81
  • 13V 0x82
  • 13.5V 0x87
  • 13.7V 0x89
  • 100% 0x64
MAPPING_BRAKEFORCED_1_L_PWM_4
  • 70% 0x46
  • pwm_1 0x00 <- selected in unmodified config
MAPPING_BRAKEFORCED_2_L_PWM_1_BFD
  • Ersatzvert 0x64 <- selected in unmodified config (1 of 2)
  • 11.5V 0x73
  • 12.2V 0x7A
  • 13.7V 0x89
  • 30% 0x1E
  • 100% 0x64 <- selected in unmodified config (2 of 2)
MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1
  • Ersatzwert 0x64 <- selected in unmodified config (1 of 2)
  • 11.5V 0x73
  • 12.2V 0x7A
  • 12.7V 0x7F
  • 0V 0x00
  • 100% 0x64 <- selected in unmodified config (2 of 2)
MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2
  • Ersatzwert 0x64 <- selected in unmodified config (1 of 2)
  • 11.5V 0x73
  • 12.2V 0x7A
  • 12.7V 0x7F
  • 0V 0x00
  • 100% 0x64 <- selected in unmodified config (2 of 2)
MAPPING_BRAKEFORCED_2_L_PWM_4
  • 6.2V 0x3E
  • 0V 0x00 <- selected in unmodified config
  • 70% 0x46
  • 100% 0x64
MAPPING_TAGFAHRL_1_V_L_PWM_1_STANDARD
  • 11.5V 0x73
  • 12.0V 0x78
  • 12.2V 0x7A
  • 12.4V 0x7C
  • 13.0V 0x82
  • 13.7V 0x89
  • 100% 0x64 <- selected in unmodified config
MAPPING_TAGFAHRL_1_V_L_PWM_2
  • pwm_1 0x08 <- selected in unmodified config
  • pwm_2 0x0C
MAPPING_TAGFAHRL_1_H_L_PWM_1_STANDARD
  • 4.0V 0x28
  • 4.8V 0x30
  • 5.0V 0x32
  • 6.2V 0x3E
  • 6.8V 0x44
  • 6.9V 0x45
  • 13.7V 0x89
  • 60% 0x3C
  • 95% 0x5F
  • 100 0x64 <- selected in unmodified config
  • 0V 0x00
MAPPING_TAGFAHRL_1_H_L_PWM_4
  • 8% 0x08
  • 40% 0x28
  • pwm_1 0x00 <- selected in unmodified config
MAPPING_TAGFAHRL_2_H_L_PWM_1_STANDARD
  • 6.9V 0x45
  • 12.8V 0x80
  • 13.7V 0x89
  • 100% 0x64 <- selected in unmodified config
  • off 0x00
MAPPING_TAGFAHRL_2_H_L_PWM_4
  • 6.9V 0x45
  • off 0x00 <- selected in unmodified config
MAPPING_NEBELSCHW_L_PWM_1_STANDARD
  • 13.0V 0x82
  • 13.2V 0x84
  • 13.4V 0x86
  • 13.7V 0x89
  • 0V 0x00
  • 100% 0x64 <- selected in unmodified config
MAPPING_STANDL_V_L_PWM_1_STANDARD
  • 7.2V 0x48
  • 11.5V 0x73
  • 12.0V 0x78
  • 12.2V 0x7A
  • 12.4V 0x7C
  • 13.7V 0x89
  • 8% 0x08
  • 10% 0x0A
  • 12% 0x0C
  • 100% 0x64 <- selected in unmodified config
MAPPING_STANDL_V_L_PWM_2_REDUCED
  • 7.2V 0x48
  • 11.5V 0x73
  • 12.0V 0x78
  • 12.2V 0x7A
  • 12.4V 0x7C
  • 13.7V 0x89
  • 8% 0x08
  • 10% 0x0A
  • 12% 0x0C
  • 100% 0x64 <- selected in unmodified config
MAPPING_STANDL_V_L_PWM_3_REAR
  • 7.2V 0x48
  • 13.7V 0x89
  • 10% 0x0A
  • off 0x00 <- selected in unmodified config
MAPPING_STANDL_H1_L_PWM_1_STANDARD
  • 4.3V 0x2B
  • 4.8V 0x30
  • 5.0V 0x32
  • 6.0V 0x3C
  • 6.2V 0x3E
  • 6.8V 0x44
  • 6.9V 0x45
  • 13.7V 0x89
  • 60% 0x3C
  • 95% 0x5F
  • 100% 0x64 <- selected in unmodified config
  • 0V 0x00
MAPPING_STANDL_H1_L_PWM_2_REDUCED
  • 4.3V 0x2B
  • 6.0V 0x3C
  • 6.2V 0x3E
  • 6.9V 0x45
  • 13.7V 0x89
  • 60% 0x3C
  • 95% 0x5F
  • 100% 0x64 <- selected in unmodified config
  • 0V 0x00
MAPPING_STANDL_H1_L_PWM_3_REAR
  • 4.8V 0x30
  • 50V 0x32
  • 6.0V 0x3C
  • 6.2V 0x3E
  • 6.8V 0x44
  • 7.0V 0x46
  • 0V 0x00 <- selected in unmodified config (1 of 2)
  • 60% 0x3C
  • 95% 0x5F
  • 100% 0x64
  • off 0x00 <- selected in unmodified config (2 of 2)
MAPPING_STANDL_H1_L_PWM_4
  • 8% 0x08
  • 40% 0x28
  • off 0x00 <- selected in unmodified config
MAPPING_STANDL_H2_L_PWM_1_STANDARD
  • 6.0V 0x3C
  • 6.2V 0x3E
  • 6.5V 0x41
  • 6.8V 0x44
  • 6.9V 0x45
  • 100% 0x64
  • off 0x00 <- selected in unmodified config
MAPPING_STANDL_H2_L_PWM_2_REDUCED
  • 6.0V 0x3C
  • 6.2V 0x3E
  • 6.5V 0x41
  • 6.8V 0x44
  • 6.9V 0x45
  • 100% 0x64
  • off 0x00 <- selected in unmodified config
MAPPING_STANDL_H2_L_PWM_3_REAR
  • 6.2V 0x3E
  • 6.5V 0x41
  • 6.8V 0x44
  • 7.0V 0x46
  • 100% 0x64
  • off 0x00 <- selected in unmodified config
MAPPING_STANDL_H2_L_PWM_4
  • 6.9V 0x45
  • off 0x00 <- selected in unmodified config
 
  #66  
Old 12-29-2021, 05:43 PM
TVPostSound's Avatar
TVPostSound
TVPostSound is offline
6th Gear
iTrader: (4)
Join Date: Mar 2014
Location: Granada Hills, CA
Posts: 2,692
Received 520 Likes on 432 Posts
I see!!

(Speaking out loud here)
BREMSL_1 and BREMSL_2 have identical specs. They are identical bulbs.
BRAKEFORCED_1 set to OUTPUT bl works in tandem with BREMSL_1 set to OUTPUT bl to create blinking VIA ESS

I dont see what BRAKEFORCED does to turn off BREMSL
I see BRAKEFORCED has Voltage at PWM 2 and 3 that BREMSL does not.


Logic dictates that I copy BRAKEFORCED_1 specs to BRAKEFORCED_2
To throw more fuel to the fire BRAKEFORCED_M has the same specs a BRAKEFORCE_2, and IT works!!
The fact that BRAKEFORCED_2 shows a priority of 1 and does not have that 13.7V kick at PWM_1


BUT
First I test by setting BRAKEFORCED_1 OUTPUT to off, and set BRAKEFORCED_2 OUTPUT to bl,
see if it triggers blinking on the lowers

OK, Im taking a break to install my side markers, then go back to this!! My GoPro battery sucks!!


 
  #67  
Old 12-29-2021, 06:54 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by TVPostSound
I see!!

(Speaking out loud here)
BREMSL_1 and BREMSL_2 have identical specs. They are identical bulbs.
BRAKEFORCED_1 set to OUTPUT bl works in tandem with BREMSL_1 set to OUTPUT bl to create blinking VIA ESS

I dont see what BRAKEFORCED does to turn off BREMSL
I see BRAKEFORCED has Voltage at PWM 2 and 3 that BREMSL does not.


Logic dictates that I copy BRAKEFORCED_1 specs to BRAKEFORCED_2
To throw more fuel to the fire BRAKEFORCED_M has the same specs a BRAKEFORCE_2, and IT works!!
The fact that BRAKEFORCED_2 shows a priority of 1 and does not have that 13.7V kick at PWM_1


BUT
First I test by setting BRAKEFORCED_1 OUTPUT to off, and set BRAKEFORCED_2 OUTPUT to bl,
see if it triggers blinking on the lowers

OK, Im taking a break to install my side markers, then go back to this!! My GoPro battery sucks!!
Thinking out loud:
  • Is the flashing a flash between on and off or between full brightness and a lower brightness? I notice PWM 1 for BRAKEFORCED 1 is 13.7v, while it looks to land at whatever "100%" is (I'm guessing NOT 13.7v, that seems high for a standard 12v system with an alternator) for BRAKEFORCED 2 and additionally, there's the implications of "Ersatzwert".
  • I notice the DEPENDENCY PWM in BRAKEFORCED 2 is level_nr 0x04 -- I did more or less reason out (with some help from some post somewhere I can't recall that discussed a live stock use of the DEPENDENCY params) that level_nr is likely referring back to the stack of PWMs within the same control section -- which would point in this case at BRAKEFORCED 2's PWM 4 -- which is factory-default set explicitly to 0v.
My thinking out loud may not be relevant, could be totally off the mark, but anyway, in case it helps.
 
  #68  
Old 09-30-2022, 09:12 PM
colinsk's Avatar
colinsk
colinsk is offline
Neutral
Join Date: Sep 2022
Posts: 4
Likes: 0
Received 1 Like on 1 Post
This thread has been really helpful. I have a F56 that came without the front fog light option. I was wondering if I could get a dump of the values from a car with the fog light option?
I am looking for:
MAPPING NEBELSCHW L OUTPUT

MAPPING NEBELSCHW L PART OF

MAPPING NEBELSCHW L FUNCTION

MAPPING NEBELSCHW L PRIORITY

MAPPING_NEBELSCHW_L_PWM_1_STANDARD

MAPPING NEBELSCHW L PWM 2

MAPPING NEBELSCHW L PWM 3

MAPPING NEBELSCHW L PWM 4

MAPPING NEBELSCHW L PWM 5

MAPPING_NEBELSCHW_L FIXED_PWM

MAPPING NEBELSCHW L OFF MODE >

MAPPING NEBELSCHW L IGR RELEVANT

MAPPING NEBELSCHW L DEPENDENCY FUNC

MAPPING_NEBELSCHW_L_SPARE_OUTPUT

MAPPING_NEBELSCHW_L_SPARE_PWM

MAPPING NEBELSCHW L DIMMED

MAPPING_NEBELSCHW_L_DISABLE_OUTPUT
 
  #69  
Old 11-12-2022, 02:30 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by colinsk
This thread has been really helpful. I have a F56 that came without the front fog light option. I was wondering if I could get a dump of the values from a car with the fog light option?
I am looking for:
MAPPING NEBELSCHW L OUTPUT

MAPPING NEBELSCHW L PART OF

MAPPING NEBELSCHW L FUNCTION

MAPPING NEBELSCHW L PRIORITY

MAPPING_NEBELSCHW_L_PWM_1_STANDARD

MAPPING NEBELSCHW L PWM 2

MAPPING NEBELSCHW L PWM 3

MAPPING NEBELSCHW L PWM 4

MAPPING NEBELSCHW L PWM 5

MAPPING_NEBELSCHW_L FIXED_PWM

MAPPING NEBELSCHW L OFF MODE >

MAPPING NEBELSCHW L IGR RELEVANT

MAPPING NEBELSCHW L DEPENDENCY FUNC

MAPPING_NEBELSCHW_L_SPARE_OUTPUT

MAPPING_NEBELSCHW_L_SPARE_PWM

MAPPING NEBELSCHW L DIMMED

MAPPING_NEBELSCHW_L_DISABLE_OUTPUT
Hey ​​​​@colinsk , sorry for the long delay in responding, glad the thread has been helpful. Here are the values I have -- I have not tweaked any of these so I'm reasonably certain that they are default/normal values. All values shown, including the parentheticals, are as-displayed in Bimmercode, and come from my 2017 F56S. I have the LED front fog lights, stock from the factory (not retrofit).

MAPPING_NEBELSCHW_L_OUTPUT: 0x03 (tfl_l)
MAPPING_NEBELSCHW_L_PART_OF: 0x00 (off)
MAPPING_NEBELSCHW_L_FUNCTION: 0x08 (nebelscheinwerfer)
MAPPING_NEBELSCHW_L_PRIORITY: 0x00 (priority_0)
MAPPING_NEBELSCHW_L_PWM_1_STANDARD: 0x64 (100%)
MAPPING_NEBELSCHW_L_PWM_2: 0x00 (pwm_1)
MAPPING_NEBELSCHW_L_PWM_3: 0x00 (pwm_1)
MAPPING_NEBELSCHW_L_PWM_4: 0x00 (pwm_1)
MAPPING_NEBELSCHW_L_PWM_5: 0x00 (pwm_1)

MAPPING_NEBELSCHW_L_FIXED_PWM: 0x01 (fixed)
MAPPING_NEBELSCHW_L_OFF_MODE: 0x00 (off)
MAPPING_NEBELSCHW_L_IGR_RELEVANT: 0x00 (not_active)
MAPPING_NEBELSCHW_L_DEPENDENCY_FUNC: 0x00 (function_1)
MAPPING_NEBELSCHW_L_SPARE_OUTPUT: 0x00 (spare_channel_1)
MAPPING_NEBELSCHW_L_SPARE_PWM: 0x00 (initwert)
MAPPING_NEBELSCHW_L_DIMMED: 0x00 (not_active)
MAPPING_NEBELSCHW_L_DISABLE_OUTPUT: 0x00 (initwert)

Worth mentioning that the corresponding right-side value for the first OUTPUT parameter (MAPPING_NEBELSCHW_R_OUTPUT) will be 0x04 (tfl_r) rather than 0x03 -- the OUTPUT value is a pointer to a specific physical device (in the case of the fog lights, anyway). All other params should (almost) certainly be the same for both L and R.
 
  #70  
Old 11-17-2022, 12:33 PM
colinsk's Avatar
colinsk
colinsk is offline
Neutral
Join Date: Sep 2022
Posts: 4
Likes: 0
Received 1 Like on 1 Post
Thank you so much! I am converting my 2014 F56 from no fog lights to LED fog lights. I have replaced the headlight switch and programmed the fog light buttons to activate the instrument cluster and installed the LED lights. Now to add a wire. The no fog light lights have two wires and it glows imperceptibly when the ignition is on. I am assuming it is used as a running light in some markets. Since the LED lights have 3 wires, I am hoping I can run a wire from the fuse box out to the fog lights but I haven't looked into what that part of the install will look like. Do you happen to have an idea of where the front running lights would be located in the code?

I have added the factory LED auxiliary lights, so I am familiar with getting into that part of the car. I did notice that the instrument cluster has a indicator for the auxiliary lights but mini does not seem to activate it. I would like to find that. The LED controller connects into the Canbus so it may be possible. Bimmercode does not seem to see the LED interface as a controller. Any thougths?

One other thing, I have programmed the rear fog light to work as a fog light and as a DRL. I don't have a LED bulb in it and I would like to dim it but I can find a setting for below 11.4V. I found some calculations to generate a 4 digit code for LED lights but Bimmer code seems to want a 2 digit code and I can't find a formula for incandescent filaments. Do you know one or have a suggested value?

From dwells on the the E90 forum, leaving it here for reference:
Update: As some of you are likely aware, the voltage values in the code are represented in a rather strange way which makes them unreadable. The hexadecimal values don't really appear to mean anything. I've written some formulas to handle converting the values and done my best to document the format for others to reference.

BMW PWM voltage value
Type: Unsigned short int
Size: 2 bytes
Description: Stores a value representing a voltage to be set via pulse width modulation.
Note: Values are not directly readable, see formulas for conversion.
Note 2: Low and high byte order is swapped on modules other than FRM3.

Decimal voltage (V) to hexadecimal code value (C)C = hex(4095V / 18)
If value is for anything other than FRM3, swap the high and low bytes/octets (first two hex digits and last two hex digits).Example of decimal voltage (V) to hexadecimal code value (C)Determine code value of voltage 12.2 volts.
C = hex((4095 * 12.2) / 18)
C = hex(49959 / 18)
C = hex(2775)
C = AD7
C for FRM3: 0A,D7
C for non-FRM3: D7,0A (byte swapped)

Hexadecimal code value (C) to decimal voltage (V)If value is from anything other than FRM3, swap the high and low bytes/octets (first two hex digits and last two hex digits).
V = (dec(C) * 18) / 4095

Example of hexadecimal code value (C) to decimal voltage (V)Determine voltage of non-FRM3 code value BB,0B.
V = (dec(0BBB) * 18) / 4095 (note that BB,0B has been byte swapped)
V = (3003 * 18) / 4095
V = 54054 / 4095
V = 13.2Hope this helps those of you who are tinkering with the values.
 
  #71  
Old 11-17-2022, 02:43 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by colinsk
Thank you so much! I am converting my 2014 F56 from no fog lights to LED fog lights. I have replaced the headlight switch and programmed the fog light buttons to activate the instrument cluster and installed the LED lights. Now to add a wire. The no fog light lights have two wires and it glows imperceptibly when the ignition is on. I am assuming it is used as a running light in some markets. Since the LED lights have 3 wires, I am hoping I can run a wire from the fuse box out to the fog lights but I haven't looked into what that part of the install will look like. Do you happen to have an idea of where the front running lights would be located in the code?

I have added the factory LED auxiliary lights, so I am familiar with getting into that part of the car. I did notice that the instrument cluster has a indicator for the auxiliary lights but mini does not seem to activate it. I would like to find that. The LED controller connects into the Canbus so it may be possible. Bimmercode does not seem to see the LED interface as a controller. Any thougths?

One other thing, I have programmed the rear fog light to work as a fog light and as a DRL. I don't have a LED bulb in it and I would like to dim it but I can find a setting for below 11.4V. I found some calculations to generate a 4 digit code for LED lights but Bimmer code seems to want a 2 digit code and I can't find a formula for incandescent filaments. Do you know one or have a suggested value?

From dwells on the the E90 forum, leaving it here for reference:
holy wow you have done a lot of work — and this is the first I have seen formulas for the power values. Good stuff!

I don’t have my documentation around as I type this, but wanted to ping back and let you know:

(1) I do have a rundown of what output devices (hex values) correspond to which physical bulbs.

(2) I do have a pretty good working sense of how to code running lights, DRLs, and welcome lights.

(3) I settled on some good values for the rear fogs (which are halogen, not LED) as rear fogs, as DRLs, as nighttime running lights, and as brake lights. I also have a bunch of values from other bulbs courtesy of Bimmercode, so I’ll share what I’ve got.

more to come within the next 24 hours.
 
  #72  
Old 11-27-2022, 03:52 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Sorry for the delay @colinsk , been busy here, apologies for not hitting my 24 hour promise. But got some good info for you.
  1. Instrument cluster indicator lights. Since I have my rear fogs come on with the front fog switch, I would love to have it also illuminate the rear fog indicator in the instrument cluster. But I don't know how to do that/where that is in the code.
  2. What hex codes correspond to which lights (output devices). These codes should be used in OUTPUT-suffixed parameters (example: MAPPING_NEBELSCHLUSSL_L_OUTPUT). See this post by CmdrBond over in the Mini F56 forum for the rundown. Full table.
  3. Running lights (day and "night"). DRLs are handled under "TAGFARLICHT" aka "TAGFAHRL" aka (translated) "daytime running light" values. Parking lights / running lights as we think of them on US cars are under "STANDLICHT" aka "STANDL" aka (translated) "parking light" values.

    There are front/rear parameter sets of each. And then, under each of those parameter sets there are "1" and "2" parameter subsets.

    Most of this complexity makes sense if you are looking at all the individually controllable lights on a BMW (esp the tail lamp assembly). There are fewer physical lights on a MINI, so you can end up with some that are, as a practical matter, not used.

    Obviously DRLs and RLs are groups of lights rather than individual bulbs/fixtures. These groups are identifiable by a hex function code (use in params that say FUNCTION, for example).
    • function "standlicht" = 0x01
    • function "tagfarlicht" = 0x04

      You assign both a function (example: tagfarlicht 0x04 aka DRLs) and an output device (example: left rear fog light aka nsl_l 0x1C) to a given param set (example: params prefixed with "MAPPING_NEBELSCHLUSSL_L_", which are primary control for the left rear fog lamp). That makes the output device light up when the given function is triggered by the computer.

      Example: function for turning on DRLs is activated, computer lights up the DRL output devices, including in this example left rear fog light (because you have specified the function tagfarlicht/0x04 in MAPPING_NEBELSCHLUSSL_L_FUNCTION and the output device nsl_l/0x1C in MAPPING_NEBELSCHLUSSL_L_OUTPUT).

      Note that the default voltage (MAPPING_NEBELSCHLUSSL_L_PWM_1_STANDARD in this example) value has to be something nonzero, enough to light the bulb, and valid (otherwise you obviously won't get the expected lighting of the bulb, and who knows what you'll get if you put in a garbage/bad/overvoltage value).
  4. Voltage values - what I'm using for the rear fog lamps when used as:
    • rear fogs: default value, 13.7V / 0x89
    • DRLs: 0x14 (found experimentally by ratcheting up the hex value, starting at 0x0A)
    • RLs aka parking lights aka nighttime running lights: 6.0V / 0x3C (borrowed from options list for MAPPING_STANDL_H1_L_PWM_1_STANDARD)
    • brake lights: 80% / 0x50 (borrowed from options list for MAPPING_NEBELSCHLUSSL_L_PWM_1_STANDARD)
  5. Voltage values - general.

    Default for rear fogs used as-intended is 13.7V, hex value 0x89. Recall that the rear fogs are filament bulbs coming off the factory assembly line, not LED. I have no idea what trying to stamp that voltage on an LED would do (probably not good). Personally, I say keep the rear fogs as filament bulbs unless you want complexity without much ROI -- it's not like they're on all the time (vs., say, 55W filament headlight bulbs that are chewing power whenever driving at night).

    That said...

    Here's a stackful of voltage values I've catalogued from within BimmerCode. These are all "canned" options, meaning that if you go into Expert mode to change a PWM value on the associated parameter (I've included the params I got these from below), BimmerCode presents them as selectable. "Options" simply means that BimmerCode presented them as selectables. It is clear to me that you can choose other hex values that are not presented, though, as you are doing now, figuring out what is a valid value and what it does is critical -- you can't just dump anything in there without taking unknown risks.

    These are presented in no particular order -- I just happened to dump them into a spreadsheet in this sequence last year. I think the upshot is to be mindful as to whether you are lighting up LEDs or halogens -- they don't seem to respond the same way to all given values.

    Oh, and note that in the param names, "V" is for front (German "vorderseite") and "H" is for rear (German "hinten"). Imagine a line bisecting the car into equally-sized front/rear halves to visualize.
    • MAPPING_BREMSL_2_L_PWM_1_STANDARD (brake light control 2, L)
      • unmodified 12.7V 0x7F
      • options 11.5V 0x73, 12.2V 0x7A, 12.7V 0x7F, 13.7V 0x89, 100% 0x64, 0V 0x00, off 0x00
    • MAPPING_BREMSL_2_L_PWM_4 (brake light control 2, L)
      • unmodified off 0x00
      • options 6.2V 0x3E, 70% 0x46, 100% 0x64, off 0x00
    • MAPPING_NEBELSCHLUSSL_L_PWM_1_STANDARD (rear fog light control, L)
      • unmodified 13.7V 0x89
      • 13.4V 0x86, 13.5V 0x87, 13.7V 0x89, 14V 0x8C, 60% 0x3C, 80% 0x50, 100% 0x64
    • MAPPING_NEBELSCHLUSSL_L_PWM_2_TRAILER (rear fog light control, L)
      • ummodified pwm_1, 0x00
      • options 4.3V 0x2B, 4.8V 0x30, 5.0V 0x32, 6.8V 0x44, pwm_1 0x00
    • MAPPING_BRAKEFORCED_1_L_PWM_1_BFD (brake force display control 1, L)
      • unmodified 13.7V, 0x89
      • options Ersatzwert 0x64 (translates as 'substitute value' or 'replacement value'), F30_US 0x70, 11.5V 0x73, 11.7V 0x75, 12V 0x78, 13.7V 0x89, 30% 0x1E, 40% 0x28, 100% 0x64
    • MAPPING_BRAKEFORCED_1_L_PWM_2_ESS_1 (brake force display control 1, L)
      • ummodified 12.7V, 0x7F
      • options Ersatzwert 0x64 (translates as 'substitute value' or 'replacement value'), F20_ECE 0x7A, F30_ECE 0x89, 11.5V 0x73, 12.7V 0x7F, 12.9V 0x81, 13V 0x82, 13.5V 0x87, 13.7V 0x89, 100% 0x64
    • MAPPING_BRAKEFORCED_1_L_PWM_3_ESS_2 (brake force display control 1, L)
      • ummodified 12.7V, 0x7F
      • options Ersatzwert 0x64 (translates as 'substitute value' or 'replacement value'), F20_ECE 0x7A, F30_ECE 0x89, 11.5V 0x73, 12.7V 0x7F, 12.9V 0x81, 13V 0x82, 13.5V 0x87, 13.7V 0x89, 100% 0x64
    • MAPPING_BRAKEFORCED_1_L_PWM_4 (brake force display control 1, L)
      • ummodified pwm_1, 0x00
      • options 70% 0x46, pwm_1 0x00
    • MAPPING_BRAKEFORCED_2_L_PWM_1_BFD (brake force display control 2, L)
      • unmodified Ersatzwert, 0x64 & 100%, 0x64 (both selected simultaneously)
      • options Ersatzvert 0x64, 11.5V 0x73, 12.2V 0x7A, 13.7V 0x89, 30% 0x1E, 100% 0x64
    • MAPPING_BRAKEFORCED_2_L_PWM_2_ESS_1 (brake force display control 2, L)
      • unmodified Ersatzwert, 0x64 & 100%, 0x64 (both selected simultaneously)
      • options Ersatzwert 0x64, 11.5V 0x73, 12.2V 0x7A, 12.7V 0x7F, 0V 0x00, 100% 0x64
    • MAPPING_BRAKEFORCED_2_L_PWM_3_ESS_2 (brake force display control 2, L)
      • unmodified Ersatzwert, 0x64 & 100%, 0x64 (both selected simultaneously)
      • options Ersatzwert 0x64, 11.5V 0x73, 12.2V 0x7A, 12.7V 0x7F, 0V 0x00, 100% 0x64
    • MAPPING_TAGFAHRL_1_V_L_PWM_1_STANDARD (daytime running light control 1, front, L)
      • unmodified 100%, 0x64
      • options 11.5V 0x73, 12.0V 0x78, 12.2V 0x7A, 12.4V 0x7C, 13.0V 0x82, 13.7V 0x89, 100% 0x64
    • MAPPING_TAGFAHRL_1_H_L_PWM_1_STANDARD (daytime running light control 1, rear, L)
      • unmodified 100%, 0x64
      • options 4.0V 0x28, 4.8V 0x30, 5.0V 0x32, 6.2V 0x3E, 6.8V 0x44, 6.9V 0x45, 13.7V 0x89, 60% 0x3C, 95% 0x5F, 100 0x64, 0V 0x00
    • MAPPING_TAGFAHRL_1_H_L_PWM_4 (daytime running light control 1, rear, L)
      • unmodified pwm_1, 0x00
      • options 8% 0x08, 40% 0x28, pwm_1 0x00
    • MAPPING_TAGFAHRL_2_H_L_PWM_1_STANDARD (daytime running light control 2, rear, L)
      • unmodified 100%, 0x64
      • options 6.9V 0x45, 12.8V 0x80, 13.7V 0x89, 100% 0x64, off 0x00
    • MAPPING_TAGFAHRL_2_H_L_PWM_4 (daytime running light control 2, rear, L)
      • unmodified off, 0x00
      • options 6.9V 0x45, off 0x00
    • MAPPING_NEBELSCHW_L_PWM_1_STANDARD (front fog light control, L)
      • unmodified 100%, 0x64
      • options 13.0V 0x82, 13.2V 0x84, 13.4V 0x86, 13.7V 0x89, 0V 0x00, 100% 0x64
    • MAPPING_STANDL_V_L_PWM_1_STANDARD ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, front, L)
      • unmodified 100%, 0x64
      • 7.2V 0x48, 11.5V 0x73, 12.0V 0x78, 12.2V 0x7A, 12.4V 0x7C, 13.7V 0x89, 8% 0x08, 10% 0x0A, 12% 0x0C, 100% 0x64
    • MAPPING_STANDL_V_L_PWM_2_REDUCED ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, front, L)
      • unmodified 100%, 0x64
      • 7.2V 0x48, 11.5V 0x73, 12.0V 0x78, 12.2V 0x7A, 12.4V 0x7C, 13.7V 0x89, 8% 0x08, 10% 0x0A, 12% 0x0C, 100% 0x64
    • MAPPING_STANDL_V_L_PWM_3_REAR ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, front, L)
      • unmodified off, 0x00
      • options 7.2V 0x48, 13.7V 0x89, 10% 0x0A, off 0x00
    • MAPPING_STANDL_H1_L_PWM_1_STANDARD ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 1, L)
      • ummodified 100%, 0x64
      • options 4.3V 0x2B, 4.8V 0x30, 5.0V 0x32, 6.0V 0x3C, 6.2V 0x3E, 6.8V 0x44, 6.9V 0x45, 13.7V 0x89, 60% 0x3C, 95% 0x5F, 100% 0x64, 0V 0x00
    • MAPPING_STANDL_H1_L_PWM_2_REDUCED ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 1, L)
      • unmodified 100%, 0x64
      • options 4.3V 0x2B, 6.0V 0x3C, 6.2V 0x3E, 6.9V 0x45, 13.7V 0x89, 60% 0x3C, 95% 0x5F, 100% 0x64, 0V 0x00
    • MAPPING_STANDL_H1_L_PWM_3_REAR ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 1, L)
      • unmodified 0V, 0x00 and off, 0x00 (both selected simultaneously)
      • options 4.8V 0x30, 50V 0x32, 6.0V 0x3C, 6.2V 0x3E, 6.8V 0x44, 7.0V 0x46, 0V 0x00, 60% 0x3C, 95% 0x5F, 100% 0x64, off 0x00
    • MAPPING_STANDL_H1_L_PWM_4 ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 1, L)
      • unmodified off, 0x00
      • options 8% 0x08, 40% 0x28, off 0x00
    • MAPPING_STANDL_H2_L_PWM_1_STANDARD ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 2, L)
      • unmodified off, 0x00
      • options 6.0V 0x3C, 6.2V 0x3E, 6.5V 0x41, 6.8V 0x44, 6.9V 0x45, 100% 0x64, off 0x00
    • MAPPING_STANDL_H2_L_PWM_2_REDUCED ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 2, L)
      • unmodified off, 0x00
      • options 6.0V 0x3C, 6.2V 0x3E, 6.5V 0x41, 6.8V 0x44, 6.9V 0x45, 100% 0x64, off 0x00
    • MAPPING_STANDL_H2_L_PWM_3_REAR ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 2, L)
      • unmodified off, 0x00
      • options 6.2V 0x3E, 6.5V 0x41, 6.8V 0x44, 7.0V 0x46, 100% 0x64, off 0x00
    • MAPPING_STANDL_H2_L_PWM_4 ("running lights without headlights aka parking lights" as we think of them in the US, aka German "standlicht"/"parking light" control, rear 2, L)
      • unmodified off, 0x00
      • options 6.9V 0x45, off 0x00
Hope this is all helpful.
 
  #73  
Old 11-28-2022, 12:19 PM
colinsk's Avatar
colinsk
colinsk is offline
Neutral
Join Date: Sep 2022
Posts: 4
Likes: 0
Received 1 Like on 1 Post
Thank you for all the information. I will dig through it. To get the fog light indicator working in the display, I simply digitally connected the rear fog light button to the rear fogs and it came on. I will try to find the exact parameters when I open it up next. The same thing worked with the front fogs. I have a switch for a car with separate front and rear fogs. I got it from a salvage yard in England. I have a non-S F56 so I only have the one rear fog. It works really well as a DRL as it is obvious it is not a brake light. I'l post more here as I progress.
 
The following users liked this post:
cjv2 (11-28-2022)
  #74  
Old 12-04-2022, 04:02 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
Originally Posted by colinsk
Thank you for all the information. I will dig through it. To get the fog light indicator working in the display, I simply digitally connected the rear fog light button to the rear fogs and it came on. I will try to find the exact parameters when I open it up next. The same thing worked with the front fogs. I have a switch for a car with separate front and rear fogs. I got it from a salvage yard in England. I have a non-S F56 so I only have the one rear fog. It works really well as a DRL as it is obvious it is not a brake light. I'l post more here as I progress.
Glad to help @colinsk , one other thing, up at post #45 in this thread I catalogued the FUNCTION values as I came to understand them. May be useful if you hadn't found that post already.
 
  #75  
Old 01-18-2023, 10:19 PM
cjv2's Avatar
cjv2
cjv2 is offline
5th Gear
Thread Starter
Join Date: Aug 2017
Posts: 925
Received 303 Likes on 241 Posts
@colinsk I'm doing some more work with the lighting and have figured some chunk of this formula out.

Arbitrarily chosen from the giant list of observed selectable values in BimmerCode:

Hex = Decimal

0x3C = 6.0v
0x3E = 6.2v
0x41 = 6.5v
0x44 = 6.8v
0x46 = 7.0v

Extrapolating for the things in between (my manual additions in bold+italic):

0x3C = 6.0v
0x3D = 6.1v
0x3E = 6.2v
0x3F = 6.3v
0x40 = 6.4v

0x41 = 6.5v
0x42 = 6.6v
0x43 = 6.7v

0x44 = 6.8v
0x45 = 6.9v
0x46 = 7.0v

No idea why I didn't spot this sooner, it's a mathematical no-brainer.

Interestingly, within this same mathematical pattern, you also end up with these values, but in BimmerCode they get rendered differently:

0x5F = 9.5 = Shown in BimmerCode as "95%", and as it also happens dec(0x5F) = 95.
0x64 = 10.0 = Shown in BimmerCode as "100%", and as it also happens dec(0x64) = 100.

In fact 0x3C is shown in BimmerCode 2 different ways: 6.0v AND 60%.

The mathematical pattern is clear. What is not obvious is what decides in a given situation whether a given value is interpreted as:

(a) a straight voltage value. Multiply the decimal voltage numeric * 10, then convert the result to hex (example: for 6.0v, multiply 6.0 * 10 = 60, convert 60 to hex and you get 0x3C.
(b) a percentage value. Just convert the decimal percentage to hex (example: for 95%, convert 90 to hex and you get 0x5F).

I have a theory though.

(1) I suspect that mappings governed by logic that presumes "this is a filament bulb" are going to presume a straight voltage value. When I observed default behavior and/or set values for the following, I was pretty much reliably able to tell that the straight voltage interpretation was in play. Note that in the stock config of my F56 S, all of these were in fact filament bulbs until I changed them out to LEDs:
  • MAPPING_NEBELSCHLUSSL_L_PWM_1_STANDARD (rear fog, left)
  • MAPPING_NEBELSCHLUSSL_R_PWM_1_STANDARD (rear fog, right)
  • MAPPING_BRAKEFORCED_2_L_PWM_1_BFD (unused by default, but BRAKEFORCED_1_L controls the left upper brake light)
  • MAPPING_BRAKEFORCED_2_R_PWM_1_BFD (unused by default, but BRAKEFORCED_1_R controls the right upper brake light)
(2) I suspect that mappings governed by logic that presumes "this is an LED bulb" are going to presume a percentage value. I noticed that applying a voltage interpretation to the following yielded far brighter results than anticipated, and had to manually "dial back" through experimentation to get the brightness I wanted. Note that these params -- TAGFAHRL, short for German tagfahrlicht -- translate as daytime running lights, and on the stock config of my F56 S, all the daytime running lights are LEDs:
  • MAPPING_TAGFAHRL_1_H_L_PWM_1_STANDARD (unused by default, but still a rear-left ("H_L") TAGFAHRL control mechanism)
  • MAPPING_TAGFAHRL_1_H_R_PWM_1_STANDARD (unused by default, but still a rear-right ("H_R") TAGFAHRL control mechanism)
As an adjunct to (1) and (2) above, I happen to have customized a third set of parameters, which I borrowed to use the rear fogs as nighttime running lights. They are filament bulbs, but the hex value I chose (0x3C) is both 50% as percentage and close to 50% of usual automotive DC voltage supply (6.0v). That makes it tough to determine, by observed brightness, whether the BDC is using percentage or voltage interpretation of the hex.
  • These params are a default-unused, secondary rear control set corresponding to the "side lights" position on the light control switch -- STANDL, short for German "standlicht" -- translate as "parking lights" (but not to be confused with Canada/Europe "roadside parking light" feature).
  • On the stock config of my F56 S, all the parking lights are LEDs, so these are probably being code-handled as LEDs.
  • MAPPING_STANDL_H2_L_PWM_1_STANDARD (unused by default, but still a secondary rear-left ("H2_L") parking lights control mechanism)
  • MAPPING_STANDL_H2_R_PWM_1_STANDARD (unused by default, but still a secondary rear-right ("H2_R") parking lights control mechanism)
Finally, I may have figured out which parameter controls whether to use voltage or percentage interpretation. Not sure but should know soon if I'm right. More to come.
 

Last edited by cjv2; 01-23-2023 at 07:42 AM.


Quick Reply: F55/F56 Top brake bulb (filament) in left/right tail lamp assemblies - what turns it on?



All times are GMT -7. The time now is 07:30 AM.