Sunday 30 August 2020

Easy 2.5" bixenon upgrade for DEPO/VALEO audi a4 b5 facelift headlights

If you like to upgrade your projector assembly in DEPO/VALEO headlights (should works for TYC also) for facelifted Audi A4 B5 for whatever reason here is a simple solution:

you need this 4TL-R 2.5" projector

these are also available from other sources, but I did not test them and can not tell if they are same.

and also here:

Next, you need the template for drilling which can be brought from my tindie store:

With this template also comes document with detailed instructions on how to modify the projector to fit. It requires 4holes to be drilled into projector and made few cuts into projector to clear inside of headlights.

Here are some sample pictures:

The adapter bolted to projector prior drilling new mounting holes.
Projector inside DEPO headlight.  
Finally inside.
Low beams
Low beams

High beams


I just use my adapter to insert projector into VALEO(OEM) projectors. Few pictures, from testing it on some broken valeo headlights:

holes are lining up, that is ok

inner parts must be addjust all way to the front glass

projector in the headlight

projector in the headlight

In document which is provided after buying adapter is more detailed process and also link to YT video how to insert the projector into headlight.

I sell on Tindie

Tuesday 11 August 2020

fixing wiper motor JL 52372

If your wiper motor in V.A.G. car with part number JL 52372 is continuously running (probably as result you leave it on while blade is frozen to window :) )  most probably the chip inside is fried. If so, nee chip can be sourced on aliexpress: . After soldering chip in place, everythings works as it should.

Few pictures from module:

8205 datasheet:



Monday 10 August 2020

REFLASHING BM62 to 2.1.3

P2_0 and P2_4 pulled to ground

EAN pulled high directly to VDD_IO (this is required even that datasheet stated there is pullup!)

22uF cap on VDD_IO (check erata)

5V connected to 5V

gnd to gnd

rx to B10 of stm32

tx to B11 of stm32

power up the module or reset it, both leds will be blinking simultaneously

run isbtflash.exe (BM6x Software & Tools(DSPKv2.1.3)\DSPK v2.1.3 Package\Tools\FlashUpdate Tool)

select com port, speed 115200:240, banks: 16 hit connect


browse-> select firmware files (from BM6x Software & Tools(DSPKv2.1.3)\DSPK v2.1.3 Package\Software\Firmware Image\BM64 Firmware yes BM64 als for BM62)

















hit update button


after the update, remove the jumper from P2_4, hit reset, both LEDs will light solid

EEPRom_tool.exe reports module as IS2064S_012_SPK02_V2.1_BETA which is probably ROM firmware, not one in flash, but this is not important.
Run isUpdate.exe, select com port, baudrate 115200:240, memory: eeprom and subtype: default, hit connect.
Using browse button in "Flash/EEPRom/MCU/AHB Access" find MCHP_DSPKv2.1.3_BM62_StandAlone

hit write table
after write  is successful, remove jumper from ENA pin and disconnect power from module, then connect it back, it will boot with both LEDs light up but

EEPRom_tool.exe will report module as IS206X_012_DUALMODESPK2.1_E1.0, now you can update eeprom with your configuration or one from my kicad-library, write new eeprom:


Do not forget check "Load default in into IP" on third screen of MPET.exe when generating eeprom (consult BM62 dev board datasheet from microchip website)

code for stm32:

#define BLUETOOTH_EEPROM_UPLOAD PA4 //goes to P2_0
#define BLUETOOTH_FLASH_UPLOAD PA5 //goes to P2_4
#define BLUETOOTH_EAN PA6 //goes to EAN

void setup() {
  Serial3.begin(115200); //Serial3 => TX = PB10, RX = PB11
//  digitalWrite(BLUETOOTH_RESET, LOW);
  digitalWrite(BLUETOOTH_RESET, HIGH);

void loop() {
//  Serial.println("Start\nsending 0x0120fc00:");
//  delay(1000);
//  Serial3.write(0x01);
//  Serial3.write(0x20);
//  Serial3.write(0xFC);
//  Serial3.write(0x00);
//  Serial.println("responce:");
//  while (Serial3.available()) {    // If anything comes in Serial1 (pins 0 & 1)
//    Serial.write(;   // read it and send it out Serial (USB)
//  }
//  delay(1000);
  while (1) {
    if (Serial3.available()) {    // If anything comes in Serial1 (pins 0 & 1)
      Serial.write(;   // read it and send it out Serial (USB)
    if  (Serial.available()) {     // If anything comes in Serial (USB),
      Serial3.write(;   // read it and send it out Serial1 (pins 0 & 1)