Sunday, September 23, 2018

Fix Ergorapido Turns Itself Off

Does your cordless vacuum turn itself off after only few minutes of vacuuming?
Does it continue few more mintues by restarting it?
Perhaps it works much longer in low power mode?

I recently obtained an Electrolux Ergorapido ZB2904X cordless vacuum from a friend of mine. He got a new vacuum since ergorapido did not function properlyanymore.

I am actually not a fan of vacuum cleaners which have the motor on the handle. They do not fit under tight spaces, they have lower power and the need to push/pull weight of motor is tiresome. Not to mention, they are often more expensive than similar traditional vacuums.

Above is a photo of the ergorapido which was not functioning properly. With full charge, it worked 1m20s on high power mode and 9m50s on low power mode. By the way, the low power mode is generally useless. After about one and half minutes of use in high power mode, the handle of the motor piece gets warm and it turns itself off.

I reckon the batteries develop a fault, either getting too hot or they lost too much of their original capacity. Therefore I proceeded by change of batteries directly. The original batteries are rated 1200mAH and the vacuum is rated to run roughly 12m at high power and 35m at low power. This tells that the vacuum is using roughly 6A at high power mode.

After the battery change, vacuum operated continuously about 28m20s on high power mode.. Meaning the vacuum now operates over twice longer than when it was new! From empty to full charge takes about 6 hours with standard 25V 0.5A electrolux adapter.

I did not test the vacuum in low power mode since I have no patience to listen to it for several hours. I reckon, in low power mode it should function longer than 1 hour. Actually, this means that this old vacuum now has longer runtime than most similar cordless vacuums in the market today since best ones seem to work up to ~45 minutes ("up to" meaning in low power mode).


Requirements:

This task require a soldering iron, solder, desoldering braid, heatshrink tubes, replacement batteries, philips head screwdriver and patience,

Getting Inside The Vacuum

It is luckily rather easy to get inside the vacuuum. It has 5 screws and 4 plastic tabs around it.

First remove the 5 screws which are shown below. Yes, the handle should be charcoal colored but it was very sticky and I used IPA (isopropyl alcohol or rubbing alcohol) to wipe the color off totally from it.
Then you can carefully pry open the 4 tabs on both sides of the handle.It does not require force if done correctly.
Once you open up the vacuul, you need to carefully unplug the cable going to the battery level indicator on top You can see the connector in the picture below. Also 3 of the batteries are visible. The circuit board is also attached to handle using two clips.

Removing The Batteries

It is quite tight inside the vacuum and it must be completely disassembled  for easy access to rest of the components. I recommend you to take a lot of pictures showing positions of the wires even if you will not desolder them. This helps putting them to same positions when assembling back.

First, there are 4 wires going down to the outside connections from the sides of the vacuum. These must be desoldered. They are shown in the pictues below. I have immediately covered the open ends with tape even though the other ends are not connected to anything. They can still touch something and close circuit and cause damage.
After desoldering the 4 wires, it would be possible to completely remove the motor, circuit board and batteries from the outer shell.

You can decouple the white battery holder from the circuit board by releasing the 4 little clips around it. After that, first remove the red wire as shown below. Immediately tape them after removal to avoid accidental shorts. The thin wire is balancing wire and red one is the main power wire.
After the removal of the red wire, it is possible to remove all the batteries from the holder. There are still several balancing wires, a power wire and a heat sensor attached to batteries.

The pack can be completely freed from the rest after removing black, blue and brown wires, as shown below. Remember to tape them right away after removal to avoid potential short circuits.
Then you can clearly see that these are 3 batteries aligned in series.

Now you have the main board and 3 battery pack seperated completely.

You have to make note of the positions of the tabs going in and out of the batteries. Because you will need to assemble the new batteries exactly same or they won't fit into the plastic. Negative and positive tabs are aligned 90 degrees to each other. Below is a picture of how the original battery looks like.
The other 2 batteries are simply connected to wires so they do not require further dissassembly. You will simply need to disconnect the wires and connect them back on new batteries. I recommend keeping the tabs long for those last 2 new batteries, because they are quite tight in their place.

The remaining 2 batteries are shown below.

Replacing The Batteries

The original batteries were marked SE US18650VT, T 2B12XTF01C. Unfortunately there was no datasheet on Sony site but I believe the information below should be accurate:

 18650 1340mAh - li-ion battery cell 3.6V US18650VT 2B Sony

Nominal Capacity: 1340mAh(0.2C discharge)
Rated Capacity: 1300mAh(0.2C discharge)
Capacity at 1C: 1280mAh(average capacity)
Capacity at 10A: 1200mAh(average capacity)
Nominal Voltage: 3.6V
Internal Impedance:25mΩ  Typ.(measured by AC1kHz)
Cycle Performance: 60% Min. of Initial capacity at 500 cycles(10A discharge)
Charge Method: constant current constant voltage
Charge Up Voltage: 4.1±0.05V
Charge Current: 1.2A
Charge Time: 100mACut
Ambiance Temperature: 23°C
Dimensions: 18.35mm(D)*65.10mm(H)
Weight: Max.44g

I got new LG HG2 (with tabs) batteries from an online seller the specs are as follows:

18650 3000mAh - li-ion battery cell LG 18650 HG2

Nominal Capacity: 3000mah
Nominal Voltage: 3.6V
Initial Internal Impedance: <20mΩ (measured at 1kHz)
Cycle Performance: >=70% after 300 cycles(10A) and 200 cycles(20A)
Charging Voltage: 4.2v
Standard Charge: 1.5A
Fast Charge: 4A
Discharge Cut-Off Voltage: 2.5V
Max. Charging Voltage: 4.20V +-0.05V
Max. Continuous Discharge Current: 20A
Operating Temperature Charge: 0 - 45C
Operating Temperature Discharge: -20 - 60C
Dimensions: 18.2mm(D)*65.0 mm(H)
Weight: Max 48g

As can be seen from the specifications, the HG2 batteries are superior, should work cooler and run longer. They can be charged to higher voltage. I checked the vacuum battery voltage at full charge and they were charged up to 4.10V. Not charging the HG2 up to maximum 4.2V will further increase their lifespan on the long run!

In addition, HG2 are safer due to INR chemistry. Meanwhile the original Sony batteries use ICR chemistry with Lithium Cobalt Oxide which is more unstable and require protection circuits.

While I needed only 5 cells, I ordered 6 cells for roughly 10€ total cost. I ordered 6, for in case one of the cells have any problems and/or also to be able to keep one extra for a reference point.

Yes, I could get 2500mAh batteries cheaper, but with a total price difference of about 2€, I figure it is best to go with highest capacity.

Important Note:
I highly recommend obtaining equipment to test the new cells before installation. Unfortunately there are many fake cells going around and it would be useful to test every battery to ensure quality.

Even cheap chargers such as Opus BT - C3100 v2.2+ provide really nice battery test programs. It is a great investment if you have any re-chargeable batteries. As you can test the remaining capacity of your cells and determine the wear amount. This charger supports multiple chemistries.

The 1A maximum discharge current of Opus BT-C3100 is only enough for testing capacity of the cells. If you want to make sure that your cell's do not overheat or does not have voltage sag, you should use a tester which supports 5A+ discharge currents. For example ZKE Tech EBD-M05 can manage up to 5A and also can create a discharge graph in PC. Only costs about 15€

Building The Pack:

First of all, you have to be 100% sure that you are not attaching the batteries upside down. Mixing up the polarities can have catastrophic results. So, check it several times while building the pack. 

I ordered batteries with tabs attached, because it is often difficult to solder battery terminals fast enough. With pre-attached tabs, it is easier to protect the battery from heat damage. However the tabs normally do not have holes, so I had to make holes to few of them using a nail.
The hole was big enough for attaching all the cables. I highly recommend this because it makes soldering much easier.

First start with attaching 3 batteries which form the pack going into the white plastic holder. I used the soft rubber pieces from original batteries while building the pack. Then attached the tabs to each other to form pack as tightly as possible.

Remember to use heatshrink to isolate the endpoints as it was on the original batteries. Then attach the heat sensor between the last 2 batteries and tape it. Also attach the blue and brown cables and the black cable


Do NOT attach the thin/thick red cable yet!! You will first need to insert the batteries inside the white plastic holder. Remember, red cable was routed from the other side of the plastic holder. See the removal picture above at removing batteries section.

Now, put the white plastic back by sliding batteries in and then you can solder the red wires. After this, you can attach the white plastic holder to the main board. All the wires go under the white plastic and there should not be any left outside.

You can now change the remaining 2 batteries which is a much easier task. Simply desolder the connections and solder to new batteries.

Putting It Back Together

Putting everything back is reverse of removal. Use the photos you have taken to figure out exactly how the cables were originally and put them back the same as before. It require some attention to fit everything back correctly. If you put parts in wrong order or at wrong orientation, they simply won't fit back.

Testing Of The Batteries

I have tested the original batteries using my LiitoKala Lii-500 charger and they all resulted in a perfectly reasonable 1000-1100mAh result with 500mA discharge current. However they perform rather badly when tested with 5A discharge current. Perhaps the batteries had too much voltage sag which triggered the vacuum to stop prematurely.

Below is the test result of all 5 batteries using the EBD-M05 tester. The results show the battery power range between 120mA to 350mA only.





Below is test result of one of the LiitoKala LG HG2 battery. As you can see, it does a nice 2500mA with 5A discharge current. This cell is suppose to be 3000mA however LG tests them with 600mA till 2.5V threshold. I believe I could get 3000mA if I followed the same protocol.

Sunday, April 8, 2018

qmail-spp plugin for getting more information in logs

This was a little script which I used with now defunct H-Sphere mail server. But it should work on other servers where qmail-spp plugin is used. Copy the simple C program below and save it as moreinfo.c

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

int main(int argc, char **argv) {
  char *user = getenv("SMTPAUTHUSER");
  char *ip = getenv("TCPREMOTEIP");
  char *mailfrom = getenv("SMTPMAILFROM");
  char *rcptto = getenv("SMTPRCPTTO");
  char *tempcount = getenv("SMTPRCPTCOUNTALL");
  int rcptcount = atoi(tempcount);
  int ppid = getppid();

  if (user != NULL && strlen(user) > 0 && rcptcount < 2) {
    fprintf(stderr, "auth: pid: %d ip: %s user: %s\n", ppid, ip, user);
  }
  fprintf(stderr, "info: pid: %d ip: %s from: %s to: %s count: %d\n", ppid, ip, mailfrom, rcptto, rcptcount);

  return 0;
}

Then compile it using the following command gcc moreinfo.c -o /var/qmail/control/plugins/moreinfo

To activate it, add the following line to /var/qmail/control/smtpplugins file under the [rcpt] section /var/qmail/control/plugins/moreinfo

Restart qmail and you will see similar output to below in /var/log/maillog

#tail -F /var/log/maillog | grep -e smtpd | grep -e info -e auth
Jun 29 02:13:13 mail smtpd: 1183072393.562254 auth: pid: 29986 ip: X.Y.U.Z user: sender@domain1.net
Jun 29 02:13:13 mail smtpd: 1183072393.562344 info: pid: 29986 ip: X.Y.U.Z from: sender@domain1.net to: receiver1@domain2.net count: 1
Jun 29 02:13:13 mail smtpd: 1183072393.902115 info: pid: 29986 ip: X.Y.U.Z from: sender@domain1.net to: receiver2@domain2.net count: 2

Here the auth section gives the smtp auth information if this section is missing then probably there is data going from server to server or your users might be using pop before smtp. The count number shows the recipient numbers, if message was sent to 3 people then count will be from 1 to 3.

Monday, January 8, 2018

VW Golf MK4 Fix Door Handle Staying Out After Pulling Frozen Door Too Hard

There is a design fault in VW Golf MK4 which cause the doors to get frozen shut if temperatures drop after rain. The door rain gutter rubber is covered by some sort of velvet material which soaks water and freezes to the doors.

There seem to be some protective foil part to fix this issue, below are the part numbers:

2 doors        1J3 898 105
4 doors        1J4 898 105
ESTATE/VARIANT 1J5 898 105 or 1J9 898 105

Once you pull the handle too hard, it won't go back in flush anymore. If you try to push it in, you will feel resistance and it will pop back up. Below picture is taken from a UK-MKIVS forum thread as an example to the situation.

To be able to fix this, you will need to remove the lock tumbler part from the door. Pelican parts have great instructions on how to accomplish this. It involves loosening one T20 screw which is conveniently behind a rubber grommet on your door. Below is a picture taken from the pelican parts instructions.
I found out that I needed to turn the screw several times before it got loosen. To not drop it accidentally, I loosened the screw 1-2 turns and check if I can remove the tumbler. When screw was out enough, it felt lose and also tumbler moved about 2mm away from door. From that point, it needed 1-2 more turns for being able to remove the tumbler completely.

Below is a photo where the latches are not in the rail. When you press the handle in, they touch to the rail and this is the reason for the felt back pressure.

Below is a photo after re-seating the latches in position.

The reseating is quite easy. It require a thin screwdriver, should be about 2mm thick. Make sure that it is hard enough to not bend. I used an electronics screwdriver.

I first pulled the handle little bit out towards the lock cylinder opening. It moves few millimeters that direction which helps when re-seating the handle.

Next, by using the screwdriver, I have pulled the lower rear holder/rail outwards as much as possible. Luckily the plastic around the opening protects the paintwork. The screwdriver should be thin enough for the latches on the door handle to be able to pass behind it.

Last step is to push the door handle in, going around the holder/rail parts. It goes rather easily through, and once the handle is in, it can be moved back to its original position.

Monday, January 1, 2018

Golf MK4 Adding a USB Port




Today all mobile phones and most other devices charge from USB ports. We need to have native USB port on our golf mk4.

You can buy some ready ports online but they have some serious limitations.

First of all, you can't install it unless you own a golf mk4 without rear window/seat heating. This is because of the plastic covers of golf mk4 are angled differently on left and right side. On models with seat heating, there are 3 buttons ready in place most left button for left seat heating, most right button for right seat heating and 2nd right button for rear window/mirror heating. So, we are left with 2nd left position to put our USB port. But with all wisdom, manufacturers design those USB ports to go to second right position where the window/mirror heater adjustment button is.

Second reason is, they are ugly! Below is a generic button you can buy online.
We surely do not want to look at this!

Third reason is that these generic USB ports do not support fast charge. We want fast charge when we are charging our phone while driving. Every minute counts!

Requirements:

So, I came up with my own solution to this problem.Needless to say, you need to be able to use a soldering iron and have some experience in wiring up electrical components.

1- I bought the generic model first which has a whole button and holder for the USB ports. I can't use this by itself since the heater button occupies the slot which it goes. But I used the holder part behind the button cover and integrate it into a dummy button.
2- You need to go online and find a 2 port QuickCharge 3.0 (now this is what my phones support, but in future perhaps USB PD) supporting cigarette lighter charger. You need to make sure that it is as small as possible due to space constraints. I went for something like below.
3- You need to have soldering iron, old usb cables, and a grinder.

Instructions:

1- First buy a dummy cover for the port you are going to use.  The model number is 1J0 858 180 C (and other side has same number but B in the end). The best way to check what you need is to remove the existing cover and look under it. Why do you buy one if you have one? Well if you accidentally destroy it, you can have a spare....
2- Now you need to disassemble your USB cigarette socket charger and mark in the middle of the dummy cover where you want the holes. Then you will use the metal piece from one of your old USB cables to melt down the holes. I used the soldering iron to warm up and push through the holes.


3- Unfortunately I forgot to make photos of the following steps. :(

  a) You need to make holes on the sides of the dummy cover so the clips from the USB holder can grab to it.

  b) Then  disassemble the cigarette lighter socket charger and remove the board of it. You need to desolder the springs etc. which form the negative/positive contacts.

  c) I added a red led to mine with a reasonable resistor to dim it so it will blend with other buttons etc. on the dash. I actually attached it to the output of the radio connector's light output which also responds to dimming etc.



4- Now you can assemble everything together and install it in place. Wiring is up to you. Easiest is to connect it to power from the radio connector.

I prepared a custom male/female extension adapter for the which took power from the lighter circuit to get power. The part numbers are 1J0919321 and 357919321 for plastic connector boxes. The numbers to male/female pins are N10319103 and N90732603. These are 4.8mm pins, anything larger won't fit into connector.

I took the ignition status from the radio connector and used a relay which turns on when the key turns on and provides power to the USB port. Without a relay, the cigarette lighter socket provides power constantly. This will cause the port to use 2mA to 10mA (depending on circuitry) constantly. The amount is little, but many such small additions eventually add up. Also, I figure I can use the cigarette lighter socket if I need to charge a device when I am not driving.

But the wiring is all up to you and your skills. Below is photos of the end result. It charges my LeEco phone with Qualcomm processor at about 16W-18W range. Which is plenty if you want to charge your phone quickly. Actually it is so much power that USB cable gets slightly warm.






LG Washer / Dryer Hands on Review 8Kg - W5J6AM0W / F4J6TM0W

I have recently obtained an LG washer/dryer. I don't necessarily need the dryer but it was a good price to get a combination machine and test how they function at the same time.

I got the W5J6AM0W model with 8Kg washing and 4Kg drying capacity for 399,90EUR. However I believe the review applies to F4J6TM0W model which is exactly same as the W5J6AM0Wmodel but twice more expensive and the only change seem to be the text 5Kg drying. Since both machines have exactly same specifications (drum size, power consumption etc.) I have hard time believing there is any real benefit on the 5Kg version. I imagine the most important factor in drying is the drum size. Both machines have 58l drum capacity.

To summarize machine has a lot of useless features. But it washes well and silently. It dries reasonably well and the price is right. Would I buy it again? Yes I would definitely buy it. But perhaps my next machine will be an LG 12Kg/8Kg Washer/Dryer. I will keep my eye open for good prices on those.

Below is the actual review machine in action:


It looks quite similar to many Samsung models. This is because Samsung stole the design from LG (if it was Apple, they would have sued Samsung already). LG has been producing direct drive machines at least since 2002!. The look and technology of the LG models have evolved since 2002, but still they resemble the original models.

The machine is very silent and stable. The loudest part of the machine is the drain pump. All LG machines I have seen had very loud drain pumps. I always wonder why they never use a more silent part.

The drying function works reasonably well for t-shirts and other thin textiles but for example jeans stay slightly moist and should go to another drying cycle.

Common Complaints:

Before I purchased the machine, I made a through Internet search to see which model is better for my purposes. Most complaints about LG models were the missing 30C washing program and machine not showing the wash time before the program starts.

I thought this machine also didn't have 30C program. But it has the 30C in settings. In either case, I was ready to accept the missing 30C program. I bet clothes get as clean in 20C as well. Even though some people claim in reviews that machine didn't clean their clothes good because it does not have 30C program. I believe those people are mistaken since they can't really know for sure if their clothes would have been clean even if there was a 30C program. Still an odd choice by LG to put 20C but not 30C in settings. I would fire the person who did that. I doubt anybody would complain about a missing 20C program because I have never seen any clothes require such strange washing temperature.

About the remaining wash time, since machine does check amount of clothes in the drum before starting to wash, it can't show you the remaining time. This is quite understandable but still, the system is quite flawed. Because if you change the program after amount detection, machine tries to re-detect the amount. Today, it should be smart enough to figure out that if the door was not opened, clothes amount can't change. A total oversight by whoever is writing the logic for the washer and I would also fire that person :) Machine could still show an average time estimate so I could choose between 2 programs easier if I am in hurry. I built a table for myself to figure out what to expect from programs and printed out.

In the end, neither are show stoppers and I am not sure why people are complaining about these redundant things. So far the only problem I have is the smell with drying cycle. Machine gives out an extra strong new machine smell every time I use the drying cycle. I am sure it will go away in a few months. Also the machine is very heavy, you need at least 2 people to move it around.

Exciting Hints:

It is very unclear how to start a spin cycle only or only a dry cycle from the manual. But there is a very practical way to access those functions.

For a drying cycle only, you can start the machine and then press the 'Dry' button immediately. Machine defaults to a '1400RPM spin + DRY' functionality. You can keep pressing the 'Dry' button to select the desired drying program and if you want cancel the spin altogether by pressing 'Spin' button or select another spin speed. Then start the program by pressing the play button.

Same goes for initiating a spin cycle only. You simply need to turn on the machine and then press the 'Spin' button to select desired spin speed and press play button to start the program.

LG Smart Laundry App / LG SmartThinQ App 

The manual mentions LG Smart Laundry app but this does not exist in Android Play Store. However I found the LG SmartThinQ App but this app did not even start and it has only 2.1 rating on the Play Store. Seems like more people should be fired. (and indeed many reviews suggested this in Play Store!)

Update: I figured out that the app won't start if your device is rooted. It was possible to start the app by disabling root, starting app and then enabling root again. It goes to show how bad the programmers who designed the app was. They were just adding annoyance features to program instead of focusing on what matters.

To be honest, the app was useless. It provided a large list of unnecessary washing programs.  The worst thing is that you can't really know what any of the programs set exactly until you transfer the program to the washing machine. Many of them being redundant, like a "Rainy Season" program, whatever that means.

Also for example the 'Wool' program wanted to wash in 40C temp which I think is too high.




Available Wash Programs:

 
The machine has way too many wash programs. It is almost like it was designed to make people confused. Actually some features are totally redundant. For example the 'Add Item' button is almost same as 'Pause/Play' button. The only difference is that the machine does not pause in situations where it is not possible to unlock the door. For example if the water temp is too hot.

The same goes to programs like 'Wash+Dry'. This program is same as the 'Cotton' program with 'Dry' option selected. (of course the amount of laundry must be about 4kg)

Some programs are only for certain limits. For example 'Hygiene' and 'Baby Care' are same as they limit you to same wash temperature and also they have similar washing times. but 'Baby Care' won't allow you to put over 1000RPM spinning speed.

Also, for example the 'Wool' wash does not exist in this model, but you can safely use 'Gentle Care' program for same results.

Is this an error? No not really. The manufacturer have obviously figured out that people are willing to pay twice more for washing machine which have special wash option for wool and baby clothes. They scramble engineers and figure out "lets limit maximum temp or spin and put it to a new program name". I know from experience that people won't believe me saying this and keep paying twice for the same features available in cheaper machines. So I really can't blame the manufacturer for trying to milk the consumer.

Below are some estimations from machine with empty drum:

As you can see, the numbers does not make any sense :)

Cotton 40C 0RPM 1h:16m
Cotton 40C 400RPM 1h:23m
Cotton 40C 800RPM 1h:25m
Cotton 40C 1000RPM 1h:24m
Cotton 40C 1200RPM 1h:16m
Cotton 40C 1400RPM 1h:18m
Cotton 60C 1000RPM 1h:29m
Cotton 60C 1400RPM 1h:33m

As you can see machine incorrectly figures 4h washing time for 'Cotton+ 60C 1400RPM' (I didn't try if it does take 4hours!) Yet another person to fire :) The difference between Cotton and Cotton+ is that the Cotton+ will be limited to 60C maximum temp

Cotton+ 40C 0RPM 1h:44m
Cotton+ 40C 400RPM 1h:50m
Cotton+ 40C 800RPM 1h:53m
Cotton+ 40C 1000RPM 1h:54m
Cotton+ 40C 1400RPM 1h:58m
Cotton+ 60C 1000RPM 1:54m
Cotton+ 60C 1400RPM 4h:06m

Mix program:

Mix 30C 1000RPM 0h:59m
Mix 30C 1400RPM 1h:03m
Mix 40C 1000RPM 1h:07m
Mix 40C 1400RPM 1h:11m

Hygiene and Baby Wash

Baby Care 60C 1000RPM 3h:13m
Hygiene 60C 1000RPM 3h:09m
Hygiene 60C 1400RPM 3h:13m

Gentle Care and Stain Care. Stain care forces a prewash and gentle care maxes out settings at 30C and 800RPM, also disables drying possibility.

(Gentle Care cold wash reduces wash time by 1min)
Gentle Care 20C/30C 400RPM 0h:23m
Gentle Care 20C/30C 400RPM 0h:28m
Gentle Care 20C/30C 800RPM 0h:30m

(Stain care allows 30C,40C and 60C which uses same time for all)
Stain Care 30C/40C/60C 1000RPM 3h:37m
Stain Care 30C/40C/60C 1200RPM 3h:39m
Stain Care 30C/40C/60C 1400RPM 3h:41m

Yet another fail, where the low temp dry actually finishes "before" normal high temp dry program which is not possible.

Quick 30 20C/30C 800RPM 0h:30m
Quick 30 40C 800RPM 0h:38m
Quick 30 40C 1400RPM 0h:43m

This feels like another fail, Low Temp Dry adds normally 48m to a normal program at 1400RPM. Yet here it adds a whopping 1h:19m.
Quick 30 40C 1400RPM + Low Temp Dry 2h:02m

Wash+Dry 40C 1400RPM + Low Temp Dry 2h:16m
Wash+Dry 40C 1400RPM + Normal Dry 2h:26m

I measured the temperature inside the drum using a type-k thermocouple:

Normal Dry 82C - 96C 0h:45m
Iron Dry 87C - 94C 0h:35m
Low Temp Dry 70C-77C 0h:35m
Eco Dry 82C - 95C 0h:50m

Additional options which add extra time to programs.

Rinse+ adds 12m
Crease Care adds 10m
Normal Dry adds 60m at 1000RPM and 58m at 1400RPM
Iron Dry adds 48m at 1000RPM and 46m at 1400RPM
Low Temp Dry adds 50m at 1000RPM and 48m at 1400RPM

Saturday, December 2, 2017

PostgreSQL Installation and Cheatsheat

I always seem to forget some small details when installing PostgreSQL so a nice cheatsheet is very good to have. Following applies to Ubuntu Xenial 16.04 and PostgreSQL 9.5

Installation:

Installation is the easy part. Lets install postgis at the same time. You don't need postgis if you wnn't work with spatial data.
# apt-get install postgresql postgis
PostgreSQL by default works with UID authentication. To become administrator, all we have to do is to switch to postgres user and then run psql
# su - postgres
$ psql
Lets create a user named masauser. You have to be logged in as postgres user.
$ createuser --pwprompt masauser
$ createdb -O masauser masadb
Remember dropuser and dropdb commands do the reverse and delete a user and database.

If you want to change the password of the user you can use \password if you are changing the current user's password. Otherwise use this:
ALTER USER masauser WITH PASSWORD 'masapassword';
Note that this will be stored in executing user's history!

Enabling Extensions:

To be able to use postgis, you need to connect to the database you want to use postgis. Then execute CREATE EXTENSION postgis;

To enable UUID support execute the following CREATE EXTENSION "uuid-ossp";

To be able to use trigram support, you need to connect to the database you want to use trigram. Then execute CREATE EXTENSION pg_trgm;

Logging in:

Normally you can login simply by writing psql masadb masauser but you may need to add the -W option if psql does not ask password. psql masadb masauser -W

If you want to login to correct database which uses password authentication, you can export the necessary information in login. The important part is PGHOST otherwise PostgreSQL will not use the password.

export PGHOST=localhost
export PGDATABASE=masadb
export PGUSER=masauser
export PGPASSWORD=masapassword

Useful Hints:

It is quite useful to enable timing when running queries. You can easily see efficiency of your queries when timing is enabled. This is enabled by timing

Create table and fill it with random data:

CREATE TABLE users (
    first_name text,
    last_name varchar(255)
)

INSERT INTO users (
    first_name,last_name
)
SELECT md5(random()::text), md5(random()::text) FROM
          (SELECT * FROM generate_series(1,1000000) AS id) AS x;


Backups:

Dump database with compression you should login as postgres user first:

$ pg_dump masadb | bzip2 > masa.sql.bz2
$ bzip2 -c -d masa.sql.bz2 | psql masadb

Saturday, November 11, 2017

Golf MK4 Variant Seat Height Adjuster Replacement

I have recently had a problem that the seat would lift up easily, but it was really difficult to make it go down. I figure the clicking mechanism connected to the adjustment handle was damaged and replaced it.

It was cheap enough to buy from AliExpress another unit. Although the seller said it was brand new, I believe it was a used unit.

The left and right seats should have different part numbers. This car is a left-hand drive model, therefore the mechanism was on left side. It has height adjustment only at driver's seat. The article/part number for the mechanism is 1J0 881 053 D ( 1J0881053D )

This probably applies to few other MK4 models and a very easy to change item.

First you have to remove the handle. Unfortunately I did not take picture of this process. It is in place with 2 torx screws. You can use a very thin screwdriver (and I mean a really thin precision electronics screwdriver) or a carpet knife to patiently pry the caps out. I read that some people drill them and replace with new ones. This is not necessary if you have thin enough tools.

The second part to remove is the seat back level adjustment knob. I also read that many people break it when removing. However there is an easy way to remove it. If you look from behind the seat, you can see the tabs holding the adjustment knob. You only need to lightly pry the tabs one at a time and pull the adjuster out from other side. There are 3 tabs. You will need to patiently turn the knob a little bit for each tab and make sure to not press them back in.

Here is a photo from how it looks like from behind. I marked where the tab is with the red arrow:
But in case if you break this part, you can get a new one from AliExpress for few euros only! The part number is 33D 881 671 . Below is a photo from how it looks like inside. You can clearly see the 3 tabs in the photo:
Next is to remove the screw from the front of the seat and also the screw under the seat distance adjustment handle and remove the handle. The front middle screws are philips screws but the handle screw is again same size torx screw. Unfortunately I have removed the screw already when I took the photo below:

Below is a photo from under the seat. While this is no use for us, I marked one of the plastic tabs holding the side of the cover. there is an identical one on the other side and you need to unlatch it when removing it.
 
Now you will need to bend the left side a little bit down, because just under the middle screw we just removed, there is another screw hidden under the plastic. Below you can see the hidden screw place on the most left also the normal visible front middle screw metal thread piece. We need to remove the hidden screw before removing the side cover.

One thing else to remove is that near the middle is a hidden plastic tab. I didnt realize this was there and I could still remove the plastic cover. But I recommend first removing the tab. You can see it in the photo below. It is just pushed into the hole and you can remove it by pulling out.

I also marked the various plastic tabs holding the part in place. You should take care to not break them.

Now all the screws and handles are removed. You should start taking the part out from the front first towards the back. I managed to get it out by wiggling up and down mostly. It requires medium amount of force and careful flexing of some tabs. Especially one tab on the upper side needed a little bit flexing to get the whole thing out.

In the above picture, you can also see the nuts holding the adjustment mechanism. It is in place with only 3 nuts (I think they were 10mm nuts). Before removing them, if possible, I recommend lifting the seat up to highest position. This is because the seat incorporates a very strong spring to help lifting the seat up. So if you remove the mechanism when the seat is down, the seat may jump with the force of the spring. When the seat is all the way up, at least for me, the seat just stayed in place.

So, after removing those 3 nuts. I simply wiggled out the adjustment part and inserted the replacement one in place. Then I had to turn it a little bit to align the holes to match.

The assembly is simply the reverse of removal. Take extra care to not break the plastic.s