JZS160/UZS161 TSRM – GS300 GS430 Service Manual



Is a 2nd gen. Lexus GS300 service manual with GS430 supplement sections. Although not included, it is very relevant for GS400 cars. Predominantly LHD, but has notes on RHD applications. The original menu system only works on old versions of internet explorer.


  • Body Repair Manual
  • Electronic Wiring Diagram
  • New Car Features
  • Repair Manual
  • Supplementary Data Sheets

I don’t host these things, so if the link breaks contact me.

Cressida Lower Control Arm Polyurethane Bushes – Same as IS300?

Regarding front lower control arm inner bushes, this site has the part listed as fitting both MX83 Cressida and JCE10 IS300:


As the superpro catalogue doesn’t list a MX83 lower control arm inner bush, it would be nice to confirm that it fits. Here’s the superpro info page for that part:

Superpro SPF3039K page

Note it doesn’t list MX83 on the application list.

Having both XE10 bushes and MX83 arms, I can confirm this WILL NOT fit. Measurements are taken off a new set of XE10 TRD bushes, and a set of used oem MX83 lower arms. Note the superpro part doesn’t include an outer shell, so measurements are taken on the inside of the existing shell.

XE10 on the left, Cressida on the right:

Inner tube length


Inner tube ID


Outer tube length


Outer tube ID



Lexus IS200 starter motor brush repair

This procedure is relevant to other Toyota planetary gear starters.

The exact factory procedure is under Starter Components in the TSRM

Symptoms of the problem:

  • No tick, tack from the starter solenoid when turning the key.
  • Tapping the starter with a stick while turning the key agitates the starter enough to start.

The starter solenoid has 1 power and 2 grounds: one ground to the body of the starter, and one ground through the starter motor. Both grounds need to be connected for the electromagnetic solenoid to pull in.

The problem is not with the solenoid itself, but with the grounding through the starter. This can be verified by:

  • Disconnecting the high current input to the solenoid input post
  • Disconnecting the link between the solenoid output post and the starter motor
  • Connecting ground to the solenoid output post
  • Connecting ground to the starter assembly body

Then power the solenoid signal +12v, it should pull in reliably every time.

Tapping the starter with a stick agitates the motor brushes to make better contact on the commutator, making a better ground through the motor. Based on these symptoms the brushes or commutator in the starter motor are worn out.

Pull the starter and dissassemble:


Usually we start by taking the other end off, but here we can see the brushes are 100% finished. 2 barely protrude from the brush holders. Where did they go? That pile of graphite tells the story.


The commutator is scored and filled with worn graphite. I wasn’t sure if this would be reusable.


Cleaned off and sanded it down


The minimum service specification is 27.0mm. This one is OK to be reused.


Here’s the brush holder end. The brush holder assembly is replaceable and can be ordered from Toyota. This is for a 1999 IS200 with a 0.8kw starter. If yours is different check the catalogue

  • 1x 28140-70020 HOLDER ASSY, STARTER BRUSH
  • 2x 28142-70020 STARTER KIT (these are the negative brushes)

The brush holder assembly contains the positive brushes. The negative brushes are separate and have to be crimped on to posts on the field body. Details of this whole job are in the service manual.

Brother MFC-J220 (and other brscan3 printers) on Linux

Preface: This is for Linux Mint 18.1 which is based on Ubuntu 16.04, other distributions will be similar.


Brother offers the packages by themselves and an automated driver install tool. We’re going to use the automated tool. It uses dpkg and apt-get to install prerequisites, so make sure the apt/dpkg lock is available – Quit / Wait for any apt-get installs in other shells, and quit software update programs to be sure.

  1. Download the .deb ‘Driver Install Tool’ package from: http://support.brother.com/g/b/downloadtop.aspx?c=eu_ot&lang=en&prod=mfcj220_all
  2. Unzip the package and make the installer executable. Note: gunzip removes the original archive when unzipping
    $ gunzip ./linux-brprinter-installer-2.1.1-1.gz
    $ chmod +x linux-brprinter-installer-2.1.1-1
  3. Run the installer. Superuser permission is required. Put in your model number when requested.
    $ sudo ./linux-brprinter-installer-2.1.1-1 
    Input model name ->MFC-J220
    You are going to install following packages.
    OK? [y/N] ->y
  4. The installer will download the relevant package from Brother, install the prerequisites and the package. During this process you will have to agree to Brother and GPL licensing agreements.
  5. At the end of installing mfcj220cupswrapper you will be asked the location of the printer. If you are using USB then selecting no is fine.
    Preparing to unpack mfcj220cupswrapper-1.1.3-1a.i386.deb ...
    Unpacking mfcj220cupswrapper:i386 (1.1.3-1) ...
    Setting up mfcj220cupswrapper:i386 (1.1.3-1) ...
    Restarting cups (via systemctl): cups.service.
    Will you specify the Device URI? [Y/n] ->n
    Test Print? [y/N] ->y
    wait 5s.
    lpr -P MFCJ220 /usr/share/cups/data/testprint

    If you choose to manually specify, you’re presented an option list like this:

    0: ipp
    1: beh
    2: ippsbrscan3-0.2.13-1.amd64.deb
    3: socket
    4: ipp14
    5: lpd
    6: http
    7: https
    8: usb://Brother/MFC-J220?serial=XXXXXXXXXXXX
    9: hp
    10: smb
    11: hpfax
    12 (I): Specify IP address.
    13 (A): Auto. (usb://Brother/MFC-J220?serial=XXXXXXXXXXXX)
    select the number of destination Device URI. ->

    Hopefully you took the opportunity to print a test page and it all went well.

  6. Continue installing packages until complete.
  7. Note the installer downloaded the Brother packages into the current directory:
    $ ls

    Delete these or keep them around in an archive folder if you need the uninstallers.

OK, assuming that all went smoothly you should now have a working printer. However the scanner doesn’t work yet.

The installer package installed the brscan packages which drive the scanner. There’s one remaining file to download from the Brother driver page – the Scanner setting file. The driver page has the latest version.

If you need more information, the download page links you to: http://support.brother.com/g/s/id/linux/en/instruction_scn1c.html?c=eu_ot&lang=en&prod=mfcj220_all&redirect=on (This page has outdated versions and information for other distros)

Download the file from the main page and install it with:

$ sudo dpkg -i brother-udev-rule-type1-1.0.2-0.all.deb
Selecting previously unselected package brother-udev-rule-type1.
(Reading database ... 224361 files and directories currently installed.)
Preparing to unpack brother-udev-rule-type1-1.0.2-0.all.deb ...
Unpacking brother-udev-rule-type1 (1.0.2) ...
Setting up brother-udev-rule-type1 (1.0.2) ...
ls: cannot access '/etc/udev/rules.d/*.rules': No such file or directory

The error when installing the scanner config package is nothing to worry about. The following is what happens when removing the udev rule and reinstalling (you don’t have to do this step, it’s just a demo):

$ cd /opt/brother/scanner/udev-rules/type1
$ sudo ./install -e
$ sudo ./install
ls: cannot access '/etc/udev/rules.d/*.rules': No such file or directory

The udev rule gets installed fine though. Investigating the udev rule I discovered a second error:

$ sudo service udev status
Mar 18 23:58:11 xxxxxxx systemd-udevd[355]: unknown key 'SYSFS{idVendor}' in /etc/udev/rules.d/40-brother-libsane-type1.rules:17
Mar 18 23:58:11 xxxxxxx systemd-udevd[355]: invalid rule '/etc/udev/rules.d/40-brother-libsane-type1.rules:17'

It’s referring to an error in the file at /etc/udev/rules.d/40-brother-libsane-type1.rules

In newer versions of udev the SYSFS field has changed to ATTR. It looks like they tried to update it, repeating line 17 with both SYSFS on 17 and ATTR on 18. Go in and delete the SYSFS version on line 17.

While you’re in there remove any comments (#’s at the start) on the lower lines:


Setting the above makes the scanner available to normal system users (I think)

$ sudo nano /etc/udev/rules.d/40-brother-libsane-type1.rules
# delete the SYSFS line and uncomment the other lines
$ sudo service udev restart

We still need to make our Brother libraries available before we can use the scanner.

Confirm scanimage -L doesn’t work yet:

$ scanimage -L

No scanners were identified. ...

Make missing symbolic links (probably because we used 64 bit driver):

$ sudo mkdir /usr/lib/sane
$ sudo ln -s /usr/lib64/sane/libsane-brother3.so /usr/lib/sane/libsane-brother3.so
$ sudo ln -s /usr/lib64/sane/libsane-brother3.so.1 /usr/lib/sane/libsane-brother3.so.1
$ sudo ln -s /usr/lib64/sane/libsane-brother3.so.1.0.7 /usr/lib/sane/libsane-brother3.so.1.0.7

Confrim scanimage -L now works:

$ scanimage -L
device `brother3:bus7;dev1' is a Brother MFC-J220 USB scanner

You should now try scanning. I use simple-scan. If your scanning program doesn’t work, try running as superuser in case there’s a permissions problem.

The brscan-skey package handles scanner buttons, info on setting it up is available eslewhere.

Hope that helps, it’s been a long one.

/dev/urandom is too slow to fill a drive

I can never remember how to use OpenSSL to generate randomly seeded garbage. Thankfully, there’s a post on netzgewitter.com:

Speed wiping a hard drive with crypto garbage generated by openssl

Update: netzgewitter.com seems to be down. Here’s the important bit:

$ openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64)" -nosalt </dev/zero > /dev/sda

replace /dev/sda with the block device you wish to erase