Showing posts with label DIY. Show all posts
Showing posts with label DIY. Show all posts

Tuesday, November 3, 2020

Golf MK4 Air Fillter Box Heated Air Flap Wax Thermostate Repair

The engine cover doubles as air filter box and also houses the heated air intake flap.

The heated air intake is through the round hole under the box. It can be seen when the filter cover is removed from the bottom.

Thermostat

After many years of operation, the heated air intake flap usually gets stuck in hot air side fully open.This is not a big problem but there is no point in taking in warmer air than necessary.

Unfortunately it is not so easy to find replacement thermostats. The only one I could find was some Volvo replacements. Although there are 2 different Volvo models, with different prices, they seem to be exactly same thermostat. So buy the cheaper one.

Here is the link to thermostat:
https://www.skandix.de/en/spare-parts/engine/fuel-mixture-formation/injection-system/idle-control/thermostat-air-temperature/1006579/

Volvo reference numbers are 1266826 and 9142616

The Volvo thermostat itself is slightly longer than the original and also the pin is much longer. So the pin must be cut smaller. The old pin can't be used because it is not same thickness.

Had to cut about 4mm to be able to bring it to correct size. There is some slack space when the pin is completely out. One can cut it even 6mm and it should still be fine. I just cut the minimum required amount so the flap can open completely.

Thermostat Removal

The thermostat can be seen once the other cover is also removed.

Removing the thermostat is not an easy task. If you are not careful the flap will get broken! The flap may be brittle from extended periods of hot air.

It is possible to remove the thermostat without removing the flap. However the new thermostat was longer and I could not install it without removing the whole spring system. But, there are people who claim to have done it.

For removing the old thermostat, you can simply push the spring as far as it goes and let the thermostat fall out. I removed the flap first.

For removing the flap, first you will need to pry open the little cover piece in the middle. It is a ~1cm length rectangular piece. You can see it removed in the picture below.

Next step is to move the spring to side, which is shown on the picture above. After this point, the flap can be removed with a little bit wiggling and bending of the black upper part. Then the spring assembly can be removed.


Once the spring is removed, one can remove the thermostat and replace it easily. I stored the new thermostat in freezer first to be able to push the pin all the way in. It makes installation much easier.

Thermostat Installation

The installation is reverse of removal. You will need to glue/melt the rectangular plastic cap back after installation.


Testing

The mormal operation is:

      Above +23 °C, flap must close warm air connection.

      Below +10 °C, flap opens warm air connection.

The Volvo thermostat starts opening warm air at about 9C and fully opens it at about 3C. It is fully closed at about 16C. Which are pretty good values all things considered.
 
I tested mine in fridge.
 






Wednesday, November 13, 2019

Unbranding ZYXEL VMG3625-T20A (Telia/Sonera) Router

This operation can possibly brick your router. So do it only if you know what you are doing. Your router is your own responsibility. There are many so called YouTube videos etc. which have unnecessary and dangerous steps. So use your brain to decide what you need and what you do not. I will stick to bare minimum and as safe as possible steps for this specific router model.

Sometimes ISPs brand the routers and disable features, maybe mess with their settings and perhaps spy on you.

Maybe the router is locked into a specific provider and you need to use it with another. There are many reasons why you may want to install generic ZYXEL firmware to an xDSL router.

Luckily it is rather easy to unbrnad the ZYXEL routers. I have performed this operation on a ZYXEL VMG3625-T20A router which was provided free with (also free) VDSL service. Albeit, free service is limited to 10Mbit/s speed but that is a good enough speed for most people.

What Do We Need?

We need few items for this operation.
  • USB TTL Serial adapter
  • Putty or any terminal program which supports serial communication
  • Tftp client (Windows 10 comes with one!) 
 

Opening The Router Case

This router has only 2 screws under the sticker. Some other routers may have 4 screws. You can feel the placements of he screw holes with your finger if you move on the sticker. You can lift the corners of the sticker with a sharp knife and unscrew the screws. I left the screws under the sticker, so they would not go far.

Once the screws are removed, you can use a plastic prying tool to open the clips. The parts are quite tight, so use patience.

I did not make pictures of this as the operation is vey simple. If you can't manage to open a simple plastic cover, you should stop now.

Here is how the router looks like inside. For our purposes, the most important piece is th 4pin connector.






The 4pin connector...


Connecting Rouer To Serial Adapter

We need to connect the router to serial adapter for communication. As you can see, the 4pin connector pins are marked as GND, NC, RX, TX, and 3.3V. For our purposes, we only need to connect RX, TX, and GND pins.

Important: Now you need to set your TTL adapter to use 3.3v. They usually have a jumper or switch for this purpose.

Modem Side - Serial Adapter Side
RX         - TX
TX         - RX
GND        - GND 

The only thing you need to be careful is to connect TX to RX. There is little which can go wrong.

Open your serial communications program and set it to work with 115200 8N1 setting. If everything is corect, you should see boot messages printed to screen when you turn on the router.

Connecting Router To Ethernet

You will also need to connect the router to ethernet as we will use TFTP to push files to the router. You should set your PCs IP address statically to 192.168.1.10 (or anyting else than 192.168.1.1 in 192.168.1.0/24 network).

Getting Ready To Send Firmware

When you turn on the router, it will give you few seconds to abort the boot process. Press a key to abort it!

You should now be at a prompt which says ZHAL> Now we can start some magic.

First run ATSH command to extract some important information. We will not need this information, but it is good to have in case something goes wrong.

The output will look like following
Firmware Version : V5.30(ABIE.6)b2_E0 Bootbase Version : V1.32 | 03/22/2018 16:56:20 Vendor Name : Zyxel Communications Corp. Product Model : VMG3625-T20A Serial Number : SXXXXXXXXXXXX First MAC Address : XXXXXXXXXXX0 Last MAC Address : XXXXXXXXXXXF MAC Address Quantity : 16 Default Country Code : FF Boot Module Debug Flag : 01 RootFS Checksum : e4d28a4b Kernel Checksum : eeba2049 Main Feature Bits : 00 Other Feature Bits : 840291b4: 04050305 00000100 00000000 00000000 840291c4: 00000000 00000000 00000000 0000
Now we need to get the login code. The login code is required for dangerous operaitons. For this purpose we should feed the Product Model from above output usin ATSE command. We will need to decode this. Luckily some nice people provided a C program which can do it. You can compile it with GCC easily. Obviously this program can be used for other ZYXEL routers! Just see the example in comments section of the program to figure out how to proceed!

/* ZyXEL prestige 660HW series password calculator by brainstorm 
  * Thanks to http://www.adslayuda.com/Zyxel650-9.html authors
  *
  * Example usage:
  *
  * Router:
  * ======
  *
  * ATSE
  * 0028D6DF1C03
  * OK
  *
  * Computer:
  * ========
  *
  * ./zyxel 0028D6DF1C03
  * ATEN 1,221E3111
  *
  * Router:
  * ======
  * ATEN 1,221E3111
  * OK
  *
  * "Dangerous" commands enabled :-)
  *
  * */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define magic1  0x10F0A563L
#define magic2  7
#define atse_length 12  /* ATSE command, ZyNOS seed password length */

#define WORD_LENGTH (8*sizeof(value))
int ror(unsigned int value, int places)
{
  return (value>>places)|(value<<(WORD_LENGTH-places));
}


int main (int argc, char* argv[]) {

        char *seed, a[7], c[3];
        unsigned int b,d,e,password;

        if ( argc != 2 ) {
                printf("Only one argument is permitted: 00BDC8667E5B\n");
                exit(-1);

        } else if ( strlen(argv[1]) != atse_length ) {
                printf( "Incorrect parameter length, should be %d characters long\n", atse_length );
                exit (-2);
        }

        seed = argv[1];

        strncpy (a, seed , 6);  //a="ersten" 3Bytes vom seed
        e = strtol(a,NULL,16);  //e=a

        strncpy (c, seed + strlen(seed)-2, 2); //c= last 2 bytes of seed?
        d = strtol(c,NULL,16) & magic2; //d="last byte" AND 7
        b = e + magic1; //

        b = ror(b,d);
        password = b ^ e;
        printf("\nATEN 1,%X\n", password);

        return 0;
}


After entering ATEN command we can finally upload the firmware. If you downloaded the firmware files from ZYXEL site, you will see that there is a BIN file which is about 17Mbyte in size. I renamed this file as zyxel.bin just for easy typing.

Now we need to tell the router that we are about to send it firmware image named, you guessed it, zyxel.bin. The command for tis operation is ZHAL> ATUR zyxel.bin The router will wait you to send the file

Upgrade to rootfs partition 1
TFTP server is started, put your file 'zyxel.bin' to server (IP is 192.168.1.1).

Now from windows we can send the file in binary mode. We need ot use the -i flag for binary transfer with windows tftp client. So the command should look like tftp -i 192.168.1.1 PUT zyxel.bin. We already set the IP address of our machine statically so it should work just fine. So the complete output should look like below:

ZHAL> ATSE VMG3625-T20A
0EA420ED3340
ZHAL> ATEN 1,10F1EDA3
ZHAL> ATUR zyxel.bin
Upgrade to rootfs partition 1
TFTP server is started, put your file 'zyxel.bin' to server (IP is 192.168.1.1).
.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Total 17498534 (0x10B01A6) bytes received

File download to memory address 0x80020000, length is 17498534

Please be patient, start to upgrade RAS!

...........................................................................................................................................................................................................................................................................................................................................................................................................................................

Update boot flag to 1
...
Auto reboot after 2 seconds
ZHAL>


Router will reboot by itself and you need to wait patiently as this will take few minutes at least. Meanwhile, not forget to remove the static IP setting from your ethernet adapter or you may regret not doing it later.

Next Step

Obviously the next step is closing up the router and tightenin the screws. I first installed 5.30(ABIE.4)C0 firmware from ZYXEL site then used the built-in web based upgrade to upgrade to 5.30(ABIE.5)C0 firmware. Also normal VDSL2 connectivity was working fine, including the 6RD tunnel that Telia/Sonera provides. So everything seems to be working fine. I am not sure why Telia/Sonera decided to make their own image, it is slightly suspicious.

Using same method, you can install any firmware to device (as long as it is compatible). For example if you want to brand it as another provider's device. I don't know why you would want to do this, but it is an option.

Caveats

The only problem is that I do not know how to backup existing firmware from the device. Therefore if you want to return back to old firmware, you will need to have access to it as BIN file. If you know how you can backup firmware from a ZYXEL device using serial communications, drop a line.

Tuesday, September 17, 2019

Golf MK4 How To Unlock Deadlocked Passenger Side Front Door

Recently the passenger side door of Golf MK4 got deadlocked and would not unlock. I had to devise a way to unlock the door without destroying the door cart. It was possible to unlock the door without damaging the door cart.

You will need a flexible screwdriver shaft. It has to be as thin as possible. I used a precision screwdriver set's shaft. You will need T20 torx bit to go with this. You will also need a drill. I used a 4mm drill bit but you may want to use 6mm.

Step 1

First step is to remove the cap which covers the screw for the placeholder next to door handle. You will need to open the rear door for this. I used my handy plastic part remover tool for this purpose.

Step 2

Use the flexible screwdriver and T20 bit to loosen the screw
I had to tape the torx bit to the screwdriver as there is risk that it falls inside the door. Also I used an endoscope camera to be able to find the screw without looking. Below is a view from my endescope camera. Make sure the loosen it only enough to remove the placeholder, otherwise it may fall into door as well.

Step 3

Remove the placeholder next to door handle. You will be able to see part of the lock.

Step 4

Drill a hole over the plastic cover of the lock with 4mm - 6mm drill bit.

Below is a more clear picture of the hole
The plastic is very thin and it is easy to drill the hole. You do not have to drill inside, just penetrate the plastic.

Step 5

This is the most important step. You should use a hard metal wire (~4mm thick) and push it inside to reach the lock mechanism. I used a coat hanger. If you have an endoscope camera, you may want to look inside the mechanism to see what you are pushing.

Below is a picture from the side with the cover removed.
Red line shows our approximate approach. The plastic piece is the piece we want to push. This plastic may be black or any other color.

Below is a more detailed picture
Normally when the lock is unlocked the part with dark blue goes down between the release latch and unlocking mechanism. So once you pull the door handle (from inside or outside) the release latch moves with the unlocking to unlock the door.

When the door is deadlocked, the electro-mechanical part won't let the dark blue part to go down. Therefore it won't be possible to unlock the mechanism.

The red line is again our approach. We need to slightly push either the plastic piece or the unlocking mechanism which is under the release latch to be able to open the door.

Obviously you need to do this carefully as the plastic which goes between mechanisms may or may not move enough to unlock the mechanism. In my case it was not very difficult, but maybe I was lucky. You should approach this with care.

Before Installing The Lock Back

If you manage to fix the lock. You can use silicone to close the hole before installing the lock.


Saturday, June 1, 2019

Color Calibration Of Epson XP Printers

I have an Epson XP-540 multi-function printer and I was not happy with the printout colors. Not that my screen is calibrated either but I wanted to have somewhat consistent results.

For example I print an item, then scan and the resulting image was drastically different than original. Now you might imagine that the printer is not able to reproduce the correct colors with 100% accuracy.Yes you are right, but this was more than that.

Calibration

I followed the instructions from https://argyllcms.com/doc/Scenarios.html They were rather detailed and there are links to program command line options.

Profiling Scanner

First we need to calibrate the scanner. In my case the scanner came with a file XP540_R.icc which was calibration profile for the scanner. The info said XP-540/640 series scanner - reflective.

To be honest, I believe this was rather accurate but I was not sure of it so I have ordered an IT 8.7/2 Reflective Scanner Target online from http://www.targets.coloraid.de/ . The test target comes with reference data (which is necessary for profiling). It was neatly packed and quite nice. Also, it was relatively cheap and seemed worthwhile to try out. If you want to go super cheap, you can get away with using the calibration profile provided with the driver.

I scanned the target with a balanced set of settings. For me, they were gamma 2.5 and contrast -10

I used GIMP to check the histogram and color balance.

Above you can see that the RGB histogram peaks in the middle and I used the color picker to pickup color from grayscale number 11 and it was around the middle.

So I saved the output of scanner as scanner.tiff. I had Argyll CMS on upper directory. I copied it8.cht from the argyll's ref folder.

..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\scanin -dipn -v scanner.tif it8.cht R170830.txt
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\colprof -v -D"Epson XP-540" -qm -ax -ua scanner

This created scanner.icm and diag.tiff for seeing if the charg was recognized.

Profiling Printer

For profiling the printer we need to generate a printout with patches like the profiling target. It is quite straightforward. You first need to create the test chart.

..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\targen -v -d2 -f1014 EpsonXP540
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\printtarg -v -R 0 -s -T300 -iSS -pA4 EpsonXP540

This creates a target image like below:
You need to print it WITHOUT any color management in your printer. In my case I set the color management to manual and I disabled color adjustment from Advanced settings.
I also disabled all settings in Image Options

Once I scanned it using same settings (gamma 2.5, contrast -10), I got the result below. It looks different than original but that is the point.
Saved it as EpsonXP540_scanned.tif and created a printer profile. I used the sRGB.icm from the ref folder of Argyll CMS

..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\scanin -dipn -v -c EpsonXP540_scanned.tif EpsonXP540.cht scanner.icm EpsonXP540
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\colprof -v -D"Epson XP-540" -qm -S sRGB.icm -cmt -dpp EpsonXP540

Based on how far you want to go. This may be enough for you. But as it happens the Argyll CMS documentation suggests you to calibrate the printer now.

As far as I understand, the next calibration step. Apparently the calibration process checks the per channel color production, CMYK.

 Printer Calibration

Now we need to print a calibration chart. The documentation suggests we print a different type of test patch for our RGB printer. This supposedly tests maximum ink levels etc. I do not know why it does not test black levels for RGB printer. Do you? Leave a message!

We create chart, print it, scan it just the same as before. The last command creates the calibration file.

..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\targen -v -d2 -s336 -e3 -f0 EpsonXP540_c
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\printtarg -v -R 0 -s -T300 -iSS -pA4 EpsonXP540_c
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\scanin -dipn -v -c EpsonXP540_c_scanned.tif EpsonXP540_c.cht scanner.icm EpsonXP540_c
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\printcal -v -p -i EpsonXP540_c

Now, we should create the same profiling chart using the calibration file. Then scan it in and create profile.

..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\printtarg -v -R 0 -s -T300 -iSS -pA4 -KEpsonXP540_c.cal EpsonXP540
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\scanin -dipn -v -c EpsonXP540_scanned_calibrated.tif EpsonXP540.cht scanner.icm EpsonXP540
..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\colprof -v -D"Epson XP-540" -qm -S sRGB.icm -cmt -dpp EpsonXP540

There you go...

Results

So, here is what I did to see how this panned out.  I first had an original.
First I printed this with different color correction modes and scanned back in
Left up - no color correction, right up - default icm, left down - auto color correction (by driver), right down - self created profile icm

I applied the self created ICM with the windows color management utility. By selecting the printer and telling it to manually use the one I uploaded as default ICM profile.

Anyway, this does not seem to work. Instead I tried to apply profile to image manually using cctiff. Here the VX2835wm.ICM came with my monitor driver. However I think sRGB.icm would do the same.


..\Argyll_V2.1.1_win64_exe\Argyll_V2.1.1\bin\cctiff VX2835wm.ICM EpsonXP540.icm murviini.tiff murviini2.tiff

Then I printed it without color management and scan using the usual settings.
This looks pretty close to the original now. I do not know what the windows color management does exactly to make it yellow...

One interesting fact is that I enabled print preview in the Epson settings and in print preview it shows the data sent to printer. This appears to be image after the color management is applied. Below are images shown by the print preview!

The one on left is converted with cctiff and printed without color management.
The one on middle is printed with custom ICM using color management.
The one on the right is printed with printer's default ICM profile for plain paper.

As you can see, printer is doing something strange when ICM is selected in settings. It prints differently even though the preview shows exactly same result. I am not sure what to make of it. If you know why this is happening, please comment!

Friday, May 24, 2019

VW Golf MK4 Rear Wiper Washer Jet Nozzle Pipe Repair

The rear wiper nozzle was rotating with the wiper arm. I had to open and see what was going on. Apparently the o-ring was broken and stuck between the washer jet pipe and the wiper pipe.

Luckily I checked the issue fairly quickly before it developed a worse problem. In many cases people realize this when the washer jet pipe is broken due to friction as it is not centered anymore without the o-ring. This causes washer fluid to leak inside the rear hatch and break latch microswitch and other things.

There is a repair kit for this purpose with part number 8L0 998 711. But it is as expensive as new motor and also fits only Valeo model as the washer jet pipe is slightly different in Bosch.

 
So, it is best to repair it before it develops a worse problem. Below is a picture of the repair kit but I did NOT use it. But it comes with 1 small o-ring and 2 large o-rings (one is not visible in the picture as it is on the wiper arm shaft already.). I don't know if the large o-rings are same size as the front wiper arm shaft o-rings. But it looks like they are probably same size.


Dissassembly And Re-assembly

Luckily there are only 2 screws and 1 panel to remove to reach the wiper motor. In this Golf MK4 Estate / Variant model. The screws are inside the handles for closing the rear hatch. (philips head screws)

Once the screws are opened, the panel can be removed by pulling out. Use some plastic opening tools and start from the middle and be patient. It is easy to break the plastic pieces on this panel, if panel is removed unevenly (eg. one side pops out with force), as the clips are really tight.

Once the panel is removed, you can access the motor. The only thing to do is to remove the electrical connector by opening the latches using a small flathead screwdriver and the washer fluid pipe by pulling out.

Normally, once the small torx screws are removed. The rear panel should come off quite easily. In my case it was very difficult to pull it out as the o-ring was stuck between pipes and it was very difficult to pull it out. I had to use some flathead screwdrivers to pry it slowly out while turning around.

Above is a picture where the pipe is partially out. Once it goes off a little bit, it is possible to remove the rear plate.
Once it is removed, and it is in good condition. You only need to clean inside the wiper arm pipe before re-installation.

I found pieces of the small o-ring inside the wiper arm pipe. The washer fluid pipe outer diameter is 3.4mm and the wiper arm pipe inner diameter is 4.7mm. I found some 3mm inner diameter (I.D.) and 1mm thickness (C.S.) o-rings from AliExpress and it seemed to be exactly same as the original. So this makes 5mm outer diameter so it fits quite snugly.

I only had half of the original o-ring but I measured it was slightly thinner than the new o-ring. Perhaps years of usage may have thinned it a bit. But when I put them on top of each other, the curve matched perfectly.


As I pulled the inner pipe quite a bit when removing. It seems like it moved a bit out from it's plastic holder. I had to warm it up using hair drier and hammer it back in gently.

As you can see, it fit slightly too long before hammering it. It should normally be flush with the outer pipe.

Here is a picture I took when inserting the o-ring in place. I simply put it on top and push it down using the washer jet nozzle. Yes, it is swimming in bearing grease.

The installation is reverse of removal. It appears there fits 2 o-rings (3 o-rings is about 0.5mm too much!). So I pushed in two o-rings so it is now double sealed. Perhaps better than new?

There is another o-ring which is on the wiper arm shaft but I did not remove it. Perhaps it would be wise to check it also once in a while.