E46 Fanatics Forum banner
141 - 160 of 162 Posts
There***8217;s like a million different possible e46 combinations. You can***8217;t just take a module and expect it to work perfectly in your car without recoding it. You need to use ncs expert.
Read this please, don’t want to hijack this thread.
 
Nice work figuring this out Terra.

I found a cheap way to do this so I figured I'd post the instructions. If you're cheap (like me), and have a soldering iron, you can do this for under $15 using a USBDM programmer off ebay.


Memory regions are as follows:

64KB Flash:
16KB 0x3c8000 - 0x3cbfff
16KB 0x3d8000 - 0x3dbfff
16KB 0x3e8000 - 0x3ebfff (also mapped to 0x4000 - 0x7fff)
16KB 0x3f8000 - 0x3fbfff (also mapped to 0xc000 - 0xffff)

1KB EEPROM:
1KB 0x1000 - 0x13ff

Tools:
USBDM Software v4.12, and associated USB device drivers
USBDM Programmer, USBDM_JS16CWJ

Hardware Setup:
1. Open the USBDM Programmer case to gain access to the pin headers, the signals are labeled on the board.
2. Tack wires to the following signals on the MCU and connect the other end to the corresponding pin on the USBDM Programmer. There are vias on each of these, so there is no need to solder directly to the MCU pins.
- VSSR, MCU pin 40, connect to USBDM GND
- VDDR, MCU pin 41, connect to USBDM VDD
- RESET, MCU pin 42, connect to USBDM RESET
- BKGD, MCU pin 23, connect to USBDM BKGD
3. Set the USBDM power jumper to 5v for this MCU. The programmer will provide MCU power for programming.
4. Connect the programmer USB cable

Memory Read Procedure:
1. Run USBDM Memory Dump
2. Device Type: HCS12
3. Memory Options: Paged, Page Register Address: 30, Initialization: 12,11
4. Configure the following memory regions to be read:
- 0x1000 - 0x13ff, 4
- 0x3c8000 - 0x3cbfff, 4
- 0x3d8000 - 0x3dbfff, 4
- 0x3e8000 - 0x3ebfff, 4
- 0x3f8000 - 0x3fbfff, 4
5. Check Keep Empty SRECs
6. Read Memory
7. Save to File

Memory Write Procedure:
1. Run HCS12 Programmer
2. Load Hex File, full memory image containing EEPROM and FLASH regions
3. Detect Chip
4. Device Selection: MC9S12A64ALT
NOTE: This is not the part number of the MCU on the LCM. This version happens to have the same flash space and it has the EEPROM mapped to 0x1000. The actual part, MC9S12DJ64 does not have the EEPROM mapped by the programmer software so it will be able to write the FLASH but not the EEPROM if you select that part.
5. Security: Image
6. Programming Erase Mode: EraseMass
7. Program Flash

I used srec_cat to convert Terra's binaries to s-record format. I attached the converted image as a .pdf, you just need to rename this to .s19 for the USBDM software.



So iv managed to do this and set my vin in BMW scanner and the tamper light is gone, 3 flash works straight away, problem is when I try to load the ALSZ in NCS expert it say the coding index is C34 and gives an error COAPI-2041: wrong ecu coding index, Is there something I've missed? Guessing the EEPROM needs updated since this method dose not update it?

INPA shows the updated C37
 
Discussion starter · #146 ·
Are you sure it's saying it's coding index C34, rather than the software wanting to see coding index C34? You might be on an old daten set, which doesn't have support for C37. Try getting a newer sp-daten-e46 set (almost anything online should be fine).
 
When i open INPA it says that the LCM is 37, It could be that NCS expert wants to see 34.

There was a post in this thread that said to change the date on the FA, My original is #0903 when i changed it to #0904, NCS expert did say it was looking for C35, but this still did not solve my problem.


I would just leave it how it is but im in Scotland and the Flash was for the US, this means iv lost the Sidelight, (small 501 bulbs in the main beam reflector)
 
So I want to have the BFD and 3 signal tap on my car, and dont have much of experience with these chip programing things and thinking of going the more expensive route buying a 4.0 or 4.5 version LCM.

I am unsure of what all the things on the label says, where mine says- ECE (europe), SA (?), dyn (dynamic or height adjustment?), LL (?), m (?), FLC (FaceLift Coupe?) and LEAR (?).

At a later date I will put the LED backlights in my car too and read here that I would need a LH or something for it to work another way with the BFD? Can someone explain the difference there?

Mine anyways is a SW 3.0 and I would anyway need to buy another one for it all to work.
Any help or tips about this would be great and what is necessary in order for all to work propperly afterwards.

And a kind of side question, but I have AE mounted in my car and would like them on when I am using the "Auto" mode on the switch but off when its set to "0" is that possible at all or would I need to go a different route here?
 
Discussion starter · #150 · (Edited)
Don't actually know what SA is
dyn = Dynamic LWR (auto leveling)
m = 'mit' = 'with'
L or LL = "Low" version (basically doesn't have the extra outputs used on newer cars)
FLC = Auto headlamps
LEAR is the manufacturer

H or LH is needed if you want to use the outer ring LEDs for BFD (it's also required for facelift sedans in general). You would have to run the extra wires to the rear for that as well.

I don't think coding the angel eyes the way you want them is possible. Can have them always on, but I don't think you can have them on with auto, off with 0.
 
Okay, thanks for the info.
Been checking for a unit with the same as mine, but LH instead of LL because why not have more features while youre at it, only negative is I only found a SW:3.6 so I might check with the stealer about that if they could sell me one with 4.0 or 4.5 (will probably cost me a car).
Is the outer ring connected at all if not using the H or LH? Could just connect it via the 3rd (center) brake light worse case.

Guess Ill need a workaround on the AEs then? Thats if it isnt possible to just tap a wire that is off with 0 and on with Auto, isnt the rain/lightsensor connected to the LCM when its in auto? Could tap in to that one, Ill check if I can find a good diagram on the wires going to the LCM.
 
Quick question:

If I'm using the original LCM from *my* car and flashing to 4.5/4.7, will the VIN and mileage information get overwritten? I guess another way to ask is whether the tamper light will get triggered using the LCM from my car after flashing without programming?
 
Quick question:

If I'm using the original LCM from *my* car and flashing to 4.5/4.7, will the VIN and mileage information get overwritten? I guess another way to ask is whether the tamper light will get triggered using the LCM from my car after flashing without programming?
You have the VIN and the mileage. Even if it does get overwritten just correct it with PASoft.
 
Quick question:

If I'm using the original LCM from *my* car and flashing to 4.5/4.7, will the VIN and mileage information get overwritten? I guess another way to ask is whether the tamper light will get triggered using the LCM from my car after flashing without programming?
It gets written to 0. You use ncs-expert to reprogram it
 
Discussion starter · #157 ·
Quick question:

If I'm using the original LCM from *my* car and flashing to 4.5/4.7, will the VIN and mileage information get overwritten? I guess another way to ask is whether the tamper light will get triggered using the LCM from my car after flashing without programming?
They get blanked out. It will act like a brand new LCM. Tamper dot will be present until the LCM is coded.
 
I have a weird issue with the LCM I bought, I have sucessfully coded it into the car with right milage and vin number, so there is no error, and then coded it to what I wanted and now the correct FA coding as well.

The thing is that as long as the engine is not on, it seems to work as it should, automatic lights work, 0 pos work, etc. But as soon as the engine is on it seems to go in to some kind of failsafe mode with every mode acting as low beam. Tried changing some of the coding of what I thought would be the issue but no luck. Cant seem to find anyone else had this problem either.

Worse case I just threw what would be $90 (850sek) on paperweight and will need to buy a new one.
 
Hello.
I was trying to flash my LSZ SW 35 CI 35 with UPA programmer. Step by step what have i done:

1. Connected lcm with upa and my pc, uuprog recognize this MC9S12D64
2. I have opened file with C37 and then i have pressed Program. After few seconds i got message that programming was successfully.
3. When i went to car and plugged back my reflashed LCM, bmw scanner and inpa says it's still SW 3.6 and CI 35.
Why? Is there different way to reflash it with UPA?


909918

when i select "All memory" option, then Program button is unclickable.

909919

This is how it looks like during programing

909920
 
141 - 160 of 162 Posts