Trip to HK & CN 2014 – Part 9: The Tram Catalogue

As promised from the last posting about the trams in Hong Kong, here is the “tram catalogue”. This is basically a collection of mostly front-shots of the numbered trams as seen in Hong Kong on my tram day, 8th January 2015. The shots themselves were taken with various lenses out of moving trams, and at strange angles, so some shots are higher resolution and less blurry than others. With the shots, you can begin to notice some subtle differences in the different trams.

As this post is very image heavy with 92 images (and hence server intensive), and might not be to everyone’s interest, I shall cut it off here … so click through if you’d like to see the whole post (unless you’ve visited the post directly, in which case, you will see all the images).

Continue reading

Posted in Photography, Travel | Tagged , , , , | Leave a comment

Trip to HK & CN 2014 – Part 8: Riding the Ding Ding Tram

[This is a posting about a trip I took to Hong Kong and China as part of a conference trip at around the beginning of the year, but as I’ve not had the time to “digest” and write posts about it, they appear “randomly” intermixed with other tech posts. Enjoy!]

By now, it’s the 8th of January and my time in Hong Kong is starting to draw to an end. My ankle was still playing up at the time, so it was mostly a case of being in a wheelchair just to keep it from flaring up.


The weather was good, and so it was decided to have another outing. Having been to Hong Kong before, I had ridden the MTR numerous times, but never have I actually ridden the ‘ding ding’ tram, which itself is a tourist attraction. Thus, it was decided – I was going to have a tram day.

Hong Kong Tramways

The trams in Hong Kong are an interesting mix – they form an integral part of the public transportation network, while remaining a tourist attraction of sorts with its heritage appeal. The network itself is over 100 years old, with 120 stops over six “lines” and 30km of track. The interactive map, reproduced in a Google Maps screenshot, shows the layout of the route.


From here, it is not clear how the “lines” operate – in fact, they are not distinct lines, but just different subsets of the main line served at different frequencies. This is made clear by the eastbound and westbound PDF maps, which show the lines in-between the stations. The trams generally stop at every stop along their route, and run at least twice an hour – stops with more “lines” passing would see more frequent service.

The trams are run at a “flat fare” regardless of the length of the trip of HKD$2.30, which is AU$0.39 at today’s rate – a bargain especially if you intend to ride the tram end to end (or close to it). The tram is boarded from the rear, with payment made upon leaving the tram at the front, and Octopus card is accepted. Generally, trams are wheelchair accessible, but with difficulty and the help of a carer. The steps to the upper deck are narrow, and several different “generations” of tram unit are in service.

Having done the research online, we were well armed to begin our tram day.

The Tram Day


Our tram day started at Wan Chai, where we started with a tram that headed towards the Happy Valley terminus. Unfortunately, because of time constraints and desire to visit certain locations, we didn’t actually ride the lines from end to end.

20150108-1656-2481Because I was still not entirely awake, I spent the ride from Wan Chai to Happy Valley just looking out the window, observing and absorbing the feeling of the tram car. It’s rather unique, as the trams are relatively small double deck “sardine cans” and the inside is always rather packed. We were lucky to get on an older style tram with front windows that can be opened, and with some patience, we could shuffle into a seat at the front for the best vantage point. The trams were heavily patronized, and initially, we were not able to get a seat at all.

Having “woken up” by the time we got to the Happy Valley terminus, I got out the camera and decided to aim for a timelapse. I had the intervalometer going, although it didn’t seem to click fast enough for my liking, and used the 8mm Samyang manual fisheye lens, looking out the front window. There was no space inside for a tripod, so I went hand-held for an added “shakiness”.

While it’s probably not the best result, and because of the start-stop and lens distortion nature of the shots, not amenable to software “correction”, it’s still fairly artistic. The tram ride was about 45 minutes of arm-cramping “holding” the camera and aiming it as steadily as possible despite the juddery start and stop of the tram. About 1000 shots were taken all-up, assembled into a 4k-resolution 12-fps video clip.

I suggest you watch this at full-screen for the best effect, and please choose 1440p or 2160p even if watching at 1080p if your connection can handle it as the 1080p compression really smears everything. Sorry for the abrupt end – it was assembled from Lightroom processed 100% JPEGs using ffmpeg command line only.

The time lapse shows just how much “waiting” the tram does for other traffic which shares the tram lane – some of which is not legal (e.g. the bicycle). We get to see trams going the other way as well, with their clearly identifiable numbers and advertising liveries which adorn the whole tram, including the side and billboards at island style tram stations.

159s 032s

In the time lapse, we can see the ride from Happy Valley Terminus to near Whitty Street. It was at this time we got off to stretch our legs and have a “nature stop”, which was a little more complicated than expected, requiring the aid of MTR attendants to let us into their behind barrier facilities. In doing so, we got to align our bearings – we saw something back from the Big Bus – the aerial flyover near HKU MTR station.


It’s a very impressive structure, a road literally at the 6th storey of a building – it wouldn’t take much of an accident to have a bus in your living room …


After our leg stretch, we were back on a tram towards North Point terminus, to visit the North Point markets. It was on this lengthy ride that I started snapping a lot of photos of people, and trams.


A lot of the time, when there is traffic congestion, you’re stuck following another tram in close proximity, which makes for difficult photography, but it does give you a good chance to admire some of the technicalities of the tram network. Here, we can see the trolley pole style current collector, with its “tiny” shoe riding in the wire, and the fixed supports for the wire. You can also see the “hook” at the rear, which is probably used to stow the trolley pole when taking units out of service.


Around that area, dried seafood is commonly sold, and we can see them lining the streets.

20150108-1704-2513 20150108-1704-2511

Unlike our overly-cautious society, the tram lines don’t seem to be treated as a danger in Hong Kong, with numerous people carting stock across and along them without much thought or even consideration as to getting run over. We managed to see many mishaps, which prompted the drive to use the bell.


Congestion is always a real problem – here, we can see a literal “tram line”. I count 15 trams or so …


She might be running late … and running in front of our tram, but she’ll always arrive in style, and she won’t miss the tram – it’s probably stuck in traffic.


There’s no shortage of pedestrians on the streets, as many smaller side roads get turned into makeshift markets.


In some places, it seems like new stations have been added, so the tram line is “bent” to accommodate an island platform.


This is one of the vans, which are used to do service visits I suppose. Maybe something’s happened on the network …

On the way up to North Point, we managed to see a few interesting rail features, including this connection of two tracks into one, with signage that a tram driver probably doesn’t need …


… this “double diamond” crossing of tracks …


… and we got to see some points operate in front of our eyes.

20150108-1806-2712 20150108-1806-2713

The equipment were clearly marked HKT for Hong Kong Tramways. The trams themselves were surprisingly short, and featured a single set of bogies right in the middle of the tram. When running across points or even joins in the rail, the tram felt like it had almost no suspension whatsoever, loudly banging and rattling along. It’s definitely got charm and character to it.


By the time we got to North Point, it’s even more drastic, as the tram line literally runs through the markets, and the people don’t pay that much attention to the tram that’s rattling slowly towards them from behind.

It seems that all the terminus stations are configured in a “loop” so as to make running services more efficient. There is no need to use a pole to change the direction of the current collector, or change driver ends. Instead, the tram just joins the end of the line of trams next to leave the terminus. As we were joining this queue, we were told that we had to get off to hop onto the front tram in the line (i.e. the next to leave) – partly because this would allow them to collect their fare, which was only fair.


The day had turned into mid-to-late afternoon, and the sun was starting to lower in the sky. The haze was somewhat apparent, and the towering buildings cast intimidating shadows onto the roadway.


Sometimes, you’re lucky enough to get a few glimpses of the sun, which quickly retreats back into hiding behind the next building.


We were calling it a day, so slowly we were heading back towards Wan Chai. Unfortunately, being in the peak hour rush meant traffic jams – so this ride took a lot longer than I had expected. It did give me a chance to see more than I would have otherwise seen, such as the round walkway at Pennington Street.


Right next to it was an official tramways driver shed, probably where they do change-overs and have their meal breaks. No fancy automated electronic driverless trams here.

20150108-1835-2781 20150108-1835-2784

We also managed to catch a glimpse of some emergency services responding to something, but we weren’t quite sure what.


It seems that tin can rustic charm isn’t reserved only for the Star Ferries, and can be found alive and well on land. The tram represents great value for money, for its aesthetic value as well as the transportation value, although it can be crowded and slow.

Join us in the next part, where we catalog images of the trams that we have spotted on our tram day – there’s a few different types!

Posted in Photography, Travel | Tagged , , , , | Leave a comment

Salvage, Teardown: Seagate Cheetah 10K6 & 10K7 SCSI Ultra320 Hard Drives

A few weeks back, an undisclosed location had a technology waste “clean-up” which was definitely a golden opportunity for any tech-salvagist and word-inventor like myself. Interestingly, this salvage opportunity netted a few desktop computers, a sizable number of sticks of RAM, as well as many hard drives. Oh what fun!

Rather rarely seen, part of the haul included SCSI Ultra320 hard drives with 80-pin Single Connector Attachment (SCA) connectors. The haul included one 73Gb Seagate Cheetah 10K6 and five 73Gb Seagate Cheetah 10K7 drives. It seems likely that all of the drives were used in a RAID array of some sort in a server, as they were all housed in the same style of caddy when received. The Cheetah name was famed for their high performance, and the 10K7 series represents the last of the SCSI generation of drives. What memories!

As usual, it seems, discovering the hardware led me to a journey of discovery – there’s more than meets the eye when it comes to a few old drives.

Reading Out the Drives

Luckily for me, and unluckily for the former owner of the drives, I had an LSI Logic Ultra160 SCSI card and appropriate SCA adapter and LVD Wide SCSI cable and terminators. Out came my old recovery box with Linux to see what I could get out of them.

My hypothesis that the units were used in hardware RAID seems to be founded, as none of the drives had a recognizable file system. Secondly, attempting to read the drives actually ran into a lot of trouble, with all drives but one hitting numerous read errors. It seems the drives had seen better days. At the end of it all, it seems that two of the drives (the 10K6 and one 10K7) had damaged themselves so badly that they were unable to read their firmware and thus kept returning “not ready” with a capacity of 0 LBA and connected in Asynchronous Narrow SCSI. It seems the drives had seen much better days.

Instead of making a regular audio recording, I decided to use my magnetic pick-up system and record the sound of powering the drive on and off, and having it read and hit a read error. One thing you’ll notice is that the drive is very musical, with swept tones which are audible from the drive. This seems to serve an audible warning of trouble, as well as potentially being used to “shake” debris from the head or micro-step the heads across the target sector.

Because of the lost data, reconstructing the RAID array was not a possibility, so I instead tried to understand the drive’s internal state.


Not having really “lived” through the SCSI era practically, as it was typically an “expensive” bus, I was on the back-foot when it came to trying to learn about an obsolete form of connectivity. Luckily, I came across the pages for The Linux SCSI Generic (sg) Driver which taught me a lot about SCSI and what can be done, down to reading mode pages, sending raw commands and other nifty utilities for working with SCSI devices.

As it turns out, SCSI drives actually can support SMART style drive status information, which is known as Informational Exceptions (or IE for short). Unlike SMART for IDE/SATA drives which have semi-defined attributes, thresholds and values, SCSI drives tend to be quite variable in the information provided and its interpretation.

You can retrieve the SMART information using smartctl under Linux, issuing sudo smartctl -x /dev/sdx where /dev/sdx is the drive being checked. For example, the output from one of the drives is as follows:


It has some counters which show you the power on hours, time to the next SMART test, total written/read and correction invocations, as well as the non-medium error (e.g. cable error) count. The number of reallocated sectors is also visible in the “elements in grown defect list” line.

SCSI drives themselves have a lot of integrated intelligence, and as a result, can be reconfigured using both standardized and vendor specific commands. I found that you can find most of the information for a SCSI target using sginfo, for example, with sudo sginfo -A -d -fPhysical /dev/sdx, you can find out all of the supported mode pages, values and the defect lists of the drive as well. Pretty cool information which is normally “hidden” in regular ATA drives in the sense that the drives internally handle defects and shield them from the end user. Some sample output includes the physical device parameter mode pages (although the values are not necessarily sensible for zoned-bit-recording drives and may represent averages sometimes), and part of a defect listing.



I also found it was possible to instruct the drives to “low-level” format themselves again, and recertify their surfaces using sudo sg_format –format /dev/sdx. This allowed me to try and “recertify” the working drives for re-use and ensure all the data was destroyed.

The results of checking the drives show that only one drive passed all of the tests as good, with three drives having varying levels of reallocations (indicating unhealthy status), and two which were outright destroyed. All of the drives had been through 47,000 hours or thereabouts (5.365 years of continuous use) and were more than due for retirement.


The units were almost all provided by Cellnet, with the exception of the 10K6 unit which was unlabelled as to supplier, and was a refurbished drive, which is likely to have been field replaced due to a failure of a 10K7 unit, but Seagate may not have had any spare 10K7 units to send … so they settled for a 10K6 (slower, previous generation unit).

Physical Defects

I thought it would be interesting to try and get a grasp of the spatial distribution of the physical defects on the drives to see whether there are special patterns. I imported the physical defect data into MATLAB to do some plotting (since it was faster than using Excel).


This plot is for serial number 3KT3XN2E, and seem to show some very unusual results. The grown errors for head 0 show a cluster near sector 0, in just one zone near the outer edge of the drive, which implies maybe some damage to the servo wedge in that zone. The grown defects on head 1 are concentrated in a ring, closer towards the end of the drive, spanning several tracks. The factory defects also show defects clustering around groups of tracks generally, with a few scattered errors.


Swapping the axis on one of the plots and zooming in (not necessarily the drive above) allows me to explain some interesting observations which may imply some axial error locality as well.

In order to improve the performance of drives under sequential workloads, when they finish one track and seek to the next, the sector 0 position of the next track is displaced (i.e. skewed) so that the head has time to settle on the next track before the sector 0 of the next track arrives.

If there is a defect at one position in the platter, then the sectors it affects in adjacent tracks are different due to the concept of cylinder skew. This is why you see the defective sectors seem to result in slanted lines of defective points.

The number of defective points suggests that the head may be “oscillating” above the track, as if it is “unstable” and may be bouncing up and down like a washboard road (which may result in further wear to the head and disk and eventually failure).


The defects for 3KT40S5C look rather different. No defects were grown on head 0, with some mostly track-localized defects on head 1 towards the outside zones. The factory defects however, seem to show scattered long length defects on head 0. Each platter and head combination seems to be different.


The grown defects for 3KT40T4K show the opposite trend to the drive above, with the grown defects mostly towards the inner radius, rather than the outer radius. Considering the drives are likely to have been in a RAID array and seen similar workload and “dwell” time over the tracks, the different resulting errors and wear is rather fascinating.


The plot for the healthiest drive, serial number 3KT418WA, showed no grown defects, but a more “sparse” factory error pattern, although somewhat more towards the outer zone. Maybe it is possible to predict which drives would have longer longevity based on the factory defect list alone, although this ignores the complexity of the drives when it comes to servo bursts etc.

Teardown: ST373307LC (Cheetah 10K6)

Seeing two of the drives are damaged beyond even mere recognition, I thought it would be good to tear them down. One thing that you will note upon picking up such high RPM drives is the sheer weight of the drive – this one tipped the scales at 706 grams with a thick heavy lid and tub, likely to dampen any vibrations.

20150622-0106-7054 20150622-0110-7062

The drive itself is a factory refurbished drive, as can be seen by the “Certified Repaired HDD” printing on the label and teal green border on the label. The drive features a spindle screw on the top lid as well, thus having the spindle “supported” at both ends.


The underside of the drive shows an LSI Logic SCSI controller which is a bit toasty and brown. A scattering of custom Seagate chips made by Agere can be seen, along with Samsung cache DRAM, ST Microelectronics flash memory for firmware and a Marvell controller which might be in control of the head actuator.

20150622-0107-7057 20150622-0108-7059

The sides of the drive showed machined/milled sides, with one hole covered by silver label used by the servo trackwriter at the factory. The double-plate thickness of the lid is clearly visible from the side profile.

20150622-0108-7060 20150622-0108-7058

The rear edge has the 80-pin SCA connector, but also shows some ribbing on the tub, likely to help ensure rigidity without using too much metal and acting as a heatsink. Some configuration jumpers are accessible from the front, and the serial numbers are also visible from the front.


No components are mounted on the rear of the PCB, of which is quite similar to the Barracuda 7200rpm SCSI drives of that era.

20150622-0116-7064  20150622-0118-706620150622-0116-7065

Underneath the PCB, sits a foam separator. The head stack connector is made by pins which physically protrude through the PCB to a connector. Underneath the foam, there was a hand-scribed HDA label, possibly from refurbishing, and further cut-outs for servo trackwriters can be seen under labels.


The underside of the top lid seems to have some springy metal to keep it in contact with the magnets possibly for grounding reasons.


The disk itself was hardly healthy. The platters were scored about the width of the head in a concentric ring, to the point that it had lost its polish. Maybe it spent a lot of time above that track and slowly eroded the surface of the disk, leading to an oscillating condition that continued to further erode the surface away to a rough sanded finish. The platters are smaller and lighter to reduce the spinning mass.


There is a recirculating air filter, as well as a breather hole filter near the magnets, which are fairly powerful large units to ensure quick seek times. The coil also features many turns to ensure it can produce the torque necessary to start and stop moving the heads quickly and (somewhat) loudly. Unusually, the wire is silver coloured rather than the more normal enameled copper wire brown-red.


The spindle clamp is a very different design, and I couldn’t actually undo it with the tools I had available.


There is a lot of evidence of concentric wear rings across the surface, especially towards the outside of the disk. More about this later on.

20150622-0128-7081The head assembly seems to be able to cater for up to three platters by two heads, but the printed flexible cable only has connections for two platters. There is a silicon die head preamp mounted directly to the flexible cable.

The failure of the drive becomes immediately obvious upon close inspection of the head. It can be seen that the texture on the head slider has been worn away, leaving a trail of contamination. This spoils the aerodynamics of the head, which is unable to maintain a proper flying height.


Without the right fly height, it is more prone to head crashes and is not able to reliably read or write from the surface. Worse still, the liberated contamination will settle on, or fly into the head causing more surface damage over time. The head itself has four connections – two for read, two for write with no active fly height control (head heaters).


This is the cause of the concentric rings on the drive – obviously running ddrescue on this drive wasn’t necessarily wise, as it would have concentrated some time reading the “abraded” band on the platter, causing further damage to the head, which then caused further surface damage. Luckily the data on this drive was nothing more than a curiosity I could do without.

Teardown: ST373207LC (Cheetah 10K7)

This was the last generation of Cheetah SCSI drives from Seagate, which seemed a little unusual given the lower model number. The drive does have a lot more “modern” touches in common with the IDE drives of that era.

20150622-0140-7091 20150622-0142-7097

The newer drive is lighter, weighing in at 646 grams, as it features just one platter rather than two. Further to that, the lid is not as sturdy and thick, and the spindle is no longer secured to the lid.


The motor driver is a STMicroelectronics Smooth branded unit, and the SCSI interface is still an LSI Logic unit. There is still a firmware flash from STMicroelectronics and what appears to be a Marvell controller in charge of the actuator. No Agere chips are visible. The motor connection is a more modern “side contact” style.


The drive retains a milled sides, and a servo trackwriter access hole sealed by a thick aluminium tape.

20150622-0141-7096 20150622-0141-7095

A different, solid SCA connector is featured, along with the Cellnet label from the system provider. The unit doesn’t have any ribbing for heat sinking or material reduction. The serial number barcode is on the front end.


No components were mounted on the underside of the PCB, but it is noted that the head stack assembly uses a bed-of-nails style connection along with the motor, rather than using pins as the 10K6 did.

20150622-0146-7098 20150622-0146-7099 20150622-0150-7101

As before, there is a foam separator, and labelled covered access for a servo trackwriter to drive the head-arm. The actual cut is three slots for accessing three holes on the head-arm.


The cover features the same “contact” arrangement, although the breather hole filter and recirculating filter (of which there seem to be two) are adhered to the cover instead of being in the drive tub.


Like more modern drives, the spindle clamp on this drive is a torx screw type which can be undone. This drive shows a clear sign of distress – a scratch on the outer diameter tracks.


On the whole, it doesn’t look anywhere near as bad as the one above. There is provision for three platters, as above.


This one has a copper-coloured coil, as expected.


With the head arms removed, it seems that four platters could be accomodated, rather than three! The printed wire assembly only has mounting for two platters (i.e. four heads).


The texturing on the slider is present, and it seems much less worn. The head itself has five bonded terminals, although one appears to be not-connected.


While there’s not as many signs of distress, this drive also seems to have a failure which prevents it from loading its configuration and firmware from disk (the flash firmware is merely a bootloader) and thus it never becomes ready for use. I suppose it could have been possible to opt for fewer, larger disks, but that might not have met the organization’s need for speed or reliability.


The salvaged drives were quite unhealthy, and were on their last legs. They were a musical lot! It seems that the SCSI drives have some intelligence in them, which is nice, but the intelligence is also a little cruder than that of their ATA counterparts which is both good and bad. On the upside, we can get the defect lists “raw” from the drive, but on the downside, the health statistics that we get are not as detailed.

It was possible to do some crude analysis on the defect patterns on the media, which seemed to show each drive to be “an individual”, although these were well past their lifetime and were on the way out.

The severely damaged drives were taken apart, and their internals analyzed where physical drive trauma leading to failure was noted. It seems that drives can physically wear out their heads and platters due to contact which is only worsened as the damage causes problems with maintaining fly height. These older drives did not have any evidence of active fly height control, which may be of limited benefit.

This represented the end of Parallel SCSI drives from Seagate, which is to say, the end of an era.

Posted in Computing | Tagged , , , | Leave a comment