Monday, 30 June 2014

Dr. Matthew A. Swabey - Curriculum Vitae - Please see updated version.

Please see the updated version:,


Friday, 20 June 2014

Unlocking the temperature on a Weller WSL or WSD 81 Solder Station

[Credit for the fix goes to Todd Wild]

Just had a weird problem with my Weller WSL with WMP pencil:

Symptom of initial failure:
The base unit was resetting and making a clicking noise while the iron temperature dropped.

When I looked closer the clicking noise was a screw I had put on the top of the base unit - every time it reset the screw jumped!

After opening the WMP pencil I discovered the strain relief failed and the wires inside the iron were shorting. After fixing that it worked perfectly but the base unit had become locked to 375°C! [Speculation is that the EEPROM in the micro was corrupted by all the hard resets and/or the EM pulses].

Symptom of locked base unit:
Trying to change the temperature failed with the display just flashing when up or down is pushed. Just in case you didn't know nearly all solder stations for production environments can be locked to prevent inexperienced people altering the soldering parameters.

Purchase a WCB1 calibrator for $1500 (only joking! read on...)

Opened WSL / WSD81 base unit - the reset jumper is to the right of the "up button" at the top right

  1. Open the case (spudgers needed, start with prying open the keyholes sideways on either side of the heatsink on the back and then pry the case up from the slots along both sides starting at the back. It should pop off towards the front).
  2. Install a jumper on the empty 0.1" pitch pins to the right of the "Up" button on the top right of the PCB. In the picture they are just visible to the right of the black square which is the up button.
  3. Power on the base unit - watch out for the live 120/240V!
  4. Wait for the display to show FSE.
  5. Remove the jumper while it is powered on.
  6. ...
  7. Profit!
Hope this may be of some use to someone else.

Making my Lenovo MCE RC-6 IR Receiver immune to interference by my TV backlight - Success

Please see this article for the starting point of this work.

Installing the new Vishay module has completely solved my problem with the TV backlight. It was terribly simple as the part is 100% compatible with the original design.


Thursday, 12 June 2014

Modding a Gigabyte i-RAM (GC-RAMDISK) to run without being plugged into a PCI slot...

Gigabyte i-RAM or GC-RAMDISK, PCI version

The Gigabyte i-RAM (or GC-RAMDISK) is a curious device. I have always been uncertain if it was a commercial success or not however the main specifications are here:
  • PCI 3.3V and 5V slot for power (bottom edge connector)
  • SATA 150 hard disk connection (red connector, top right)
  • Maximum capacity of 4 gigabytes (yes 4)
  • One benchmark has it at 25,576 RW IOPS for 512k (YES 25k IOPS)
  • Doesn't wear out or degrade with time or capacity like an SSD
  • Backup battery (on the right) keeps the data on the drive live for about 16 hours.
The only point of real interest is the IOPS. You can get the whole thing setup from eBay for <$200 while to achieve better IOPS from a SSD requires something like the OCZ Vector at $450. Note that for all normal uses the OCZ Vector is a much better solution!


I am a big user of ZFS on Linux for many reasons (note unless they have released 0.6.3 use git HEAD as so many important fixes have been bundled in since 0.6.2).
ZFS is an excellent file system (you can read about it here) but mainly I value it for the data integrity first and the ease of configuration second.
ZFS is designed to take advantage of hierarchical storage to deliver increased performance, i.e. you can feed it hard disks for bulk storage, SSDs and things like this RAMDISK as caches/log volumes and it will present a single, high integrity, higher performance, volume to the operating system.
The log I care about particularly (as do most ZFS users) is the ZIL or ZFS Intent Log. For full details read the blog but basically every so often a filesystem must commit data to persistent storage before carrying on for data integrity/safety's sake. Having a low latency, separate log allows the filesystem to massively accelerate its performance by moving those critical writes off the slow bulk storage onto a dedicated device until they can be committed to bulk storage in an scheduled, ordered, sane manner. This also frees the bulk storage to service the other outstanding requests for data.
SSDs work well as ZIL devices however the device is constantly hit with small writes which will wear the disk reasonably quickly and degrades the IOPS as the different areas of the flash array are written to and the management IC works harder.
The Gigabyte i-RAM (GC-RAMDISK) doesn't wear, nor does it suffer from degraded IOPS over time. It also still has a very high IOPS value for such an old piece of hardware.

Modifying it to run outside a PCI socket

While the i-RAM looks like it is a PCI card it merely uses the socket for power, nothing else. A bit of reverse engineering reveals the i-RAM uses the following:
  1. 12V seems to be related to the battery backup subsystem
  2. 5V used to power the DDR termination supplies and charge the battery, certainly high current
  3. 3.3V used to power the main electronics on the board
  4. 3.3Vaux [always on] used to trickle charge the battery and keep the RAM contents alive when the computer is powered down
  5. RST# used to switch the card from standby to on when the PC powers up and off again on power down
So if we look inside the PC (not using the motherboard or a PCI slot) then the ATX connector has nearly all the signals we need:
  1. 12V
  2. 5V
  3. 3.3V
  4. 5Vsb [always on] 
  5. PS_OK indicates the power supply if fully turned on and voltages stable
So the connections are (i-RAM - ATX):
  1. 12V - 12V
  2. 5V - 5V
  3. 3.3V - 3.3V
  4. 3.3Vaux - Power Regulator - 5Vsb
  5. RST# - PS_OK
The only supply missing is the 3.3Vaux however there is the 5Vsb available. With a suitable linear LDO and heatsink it was possible to build a regulator. The i-RAM is quite naughty and draws far too much current from the 3.3Vaux in the PCI bus - I have measured it at over 1.3A! To cope with this I chose the Texas Instruments LM1084 LDO linear 3A regulator.

Here are the photos of the final product:
Rebuilt i-RAM attached to standoffs inside the case lid
Component side (B) of the modified i-RAM showing heavy flywires and Molex sockets
Side A of the modified i-RAM showing heavy flywire connections
Inline ATX 5VSB to 3.3Vaux linear regulator (in fact the regulator on this board is incorrect and was replaced with the LM1084)

Screw terminal block splicing the necessary ATX voltages for the i-RAM