Following the instructions here, I fixed my broken Nikon 55-200mm f/4-5.6G ED IF AF-S DX VR [Vibration Reduction] Zoom Nikkor Lens

First off, this is a great lens. I wish it would go down to f2.8, but, you can’t have everything for $200. Unfortunately, or perhaps by design, Nikon equipped this lens with plastic mounting lugs. Plastic can, well, shear off at the worst times.

I’ll post some pictures later, but for now, here is the fix.

Essentially, this repair consists of ordering the right part – the box is labeled B37, code JAA79851-B37. I called the Nikon parts department and just asked for the “mounting ring” for this lens.

Part in hand, you’ll need a tiny screwdriver.

Look at the base of the lens – you’ll see three parts. On the outside is the mounting ring we’re going to replace, there is a curved bit with contacts for the camera, and another part surrounding the glass.

Looking further, you’ll see three screws holding the surround part, two on the contact plate, and three on the mounting ring.

Remove the three screws for the surround part, then gently lift it off. Put the screws somewhere safe.

Now, remove the two screws for the contact plate. It’ll fall towards the middle of the lens, that’s fine. There is a thin conductor cable coming from it, just be easy and don’t force anything.

Take a deep breath, we’re about to do the hardest part.

Remove the three screws around the perimeter to free the broken mount. Gently lift up a bit and look underneath. Try not to disturb the shims under there, but I’m sure you will. Don’t sweat it too much.

Unlike the images in the linked article, my replacement part has an aperture loop (the long thing that sticks into the lens) instead of a plate. This loop is connected to the lens, and there didn’t seem to be an easy way to detach it. This loop is connected to the mounting plate with two very small screws, removed them, and I was able to lift the mount enough to look at the next challenge.

As noted in the linked article, there is a small wire leading to a contact on the edge of the mount. This contact consists of a screw, a bracket, a pin, and a spring. After that spring went flying off the table, I surmised it has a decent amount of compression. So, unlike me, carefully remove the screw and other parts from the damaged mount.

Half way done! Now, we just need to reverse the process.

I removed that contact pin from the new mount, and attached it to the wire coming from the lens. Carefully, put the mount back on the lens.

To attach the aperture loop, I used a toothpick to prop it up enough, then the magnetic screwdriver could take over. Two tiny screws later, we’re ready to reassemble.

First, we’ve got to deal with those shims. I used the toothpick to line the holes up, and indexed on the mount-screw hole just to the right of an indentation (where that contact pin bracket will wind up). Carefully, ease the connector plate back into position while putting the mount into position – harder to explain than it is to do, really.

Take another deep breath, the worst is over.

Replace the two screws in the connector plate.

Using that toothpick, I made sure the mount holes, shims, and screw holes were aligned, and replaced these 3 screws.

Drop the surround ring back into place, and replace it’s 3 screws.

Cross fingers, mount the lens on the camera. Mine worked the first time!

While the reshape is running, you can cat /proc/mdstat to see some status. The output from this command looks like this:

ahbanks@raid:~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid5 sdb3[2] sda3[0] sdc4[1]
1232688064 blocks super 0.91 level 5, 64k chunk, algorithm 2 [3/3] [UUU]
[===================>.] reshape = 99.4% (1226222424/1232688064) finish=4.1min speed=26164K/sec

As you can tell, I did that when the reshape was almost done!

ahbanks@raid:~$ sudo mdadm -D /dev/md0
[sudo] password for ahbanks:
Version : 00.91
Creation Time : Sat Jan 24 14:37:13 2009
Raid Level : raid5
Array Size : 1232688064 (1175.58 GiB 1262.27 GB)
Used Dev Size : 1232688064 (1175.58 GiB 1262.27 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Feb 5 17:22:26 2009
State : clean, recovering
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

Reshape Status : 99% complete
Delta Devices : 1, (2->3)

UUID : 24ce66b9:093ac8f1:b5fcf7a2:8379ebaf (local to host jupiter)
Events : 0.817352

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 36 1 active sync /dev/sdc4
2 8 19 2 active sync /dev/sdb3

This gives us even more data. Note the device size, 1175 GB, even though there are 3 drives. After this process finishes, we see:

ahbanks@raid:~$ sudo mdadm -D /dev/md0
Version : 00.90
Creation Time : Sat Jan 24 14:37:13 2009
Raid Level : raid5
Array Size : 2465376128 (2351.17 GiB 2524.55 GB)
Used Dev Size : 1232688064 (1175.58 GiB 1262.27 GB)
Raid Devices : 3
Total Devices : 3
Preferred Minor : 0
Persistence : Superblock is persistent

Update Time : Thu Feb 5 20:37:20 2009
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0

Layout : left-symmetric
Chunk Size : 64K

UUID : 24ce66b9:093ac8f1:b5fcf7a2:8379ebaf (local to host jupiter)
Events : 0.821960

Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 36 1 active sync /dev/sdc4
2 8 19 2 active sync /dev/sdb3

Once the reshape is done, the device has the full 2351 GB.

Now, I extended the JFS filesystem.

sudo mount -o remount,resize /dev/md0

This took a few minutes to run, then:

ahbanks@raid:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/md0 2.3T 363G 2.0T 16% /mnt/raid

Much better!

Now, I’m kicking myself. If I’ve learned anything from building this array, it’s easy, really. Grab some disks and do it. Next, I’ll look at the hardware costs of an inexpensive system.

In the last episode, I created a RAID5 group (with 2 disks, go figure..), with the intention of expanding in the future.

It’s a new month, so I grabbed another Seagate 1.5TB drive, popped it in the system, and fired it up. Grub (linux boot manager) reported an error 5 – “something isn’t right with the partitions”.

This was when I started wondering a bit about the SATA controller on this motherboard. The SATA ports are numbered, from top top bottom, SATA6, SATA5, SATA2, SATA3, SATA1. I’m surmising from the numbering that STAT4 is the eSATA port. When I installed this drive, I just put the cable in the next port, which turns out to be SATA2.

Rearranging the cables, I put the new drive on SATA3, and booted into Ubuntu. Noticed something a bit strange – the new disk wound up as /dev/sdb, not /dev/sdc as I expected, being on the SATA3 port.

Created partitions, just like /dev/sda – 225gb Vista, 2GB swap, 1175 for RAID.

Added the new partition to the array as a spare:
sudo mdadm --add /dev/md0 /dev/sdb3

Crossed the fingers, and made it active:

sudo mdadm --grow /dev/md0 --raid-devices=4

This kicked off the reshape process, which is currently running.

More to come when that’s done and I can expand the file system.

In the last installment, I got the OS installed and drive array spinning. Since HDMI can pass audio and video over a single cable, this is ideal for an MPC setup.

I decided to use Ubuntu’s tool to install the Nvidia 177 driver, hoping that would do the trick, but no luck. After spending some time with this setup, I decided to switch my efforts to the Vista side.

My reasoning is the Windows driver is fairly well supported, and I wanted to be sure everything else was set up and connected properly. So, a reboot later, I log into Vista.

I’ve already installed the driver that came on the included CD, but no luck with those either. Off to the Asus website! Found an updated driver pack, all 500+ MB of it, and start to download from the global site. A while later, and 170 MB into the download, it timed out – yuck. I tried the China site, but it was no better. If anyone from Asus is reading this, guys, fix the download part of your website! I finally got the file I needed by using

With the file in hand, I ran the setup, then had to upgrade Vista’s video driver manually and rebooted. Entered display properties, told the driver to send the desktop to the 2nd display as well, then there was HDMI video!

Next, looked at the audio. In the audio properties, I changed the HDMI out to be the default device, and there was sound!

With working audio and video over HDMI in Vista, I had to do some performance testing with Hitman: Contracts. My conclusion? A 50″ 1280×720 display makes for an excellent gaming experience.

Having done a nice performance test, I turned my attention back to the Ubuntu side. I did some reading on the Ubuntu forums, and changed the Nvidia driver version from 177 to 173 with the admin tool. A little fiddling with the settings to send the desktop to the 2nd display, and video was working on HDMI!

At this point, I joyously disconnected the VGA cable from the server!

There was still one small thing… Audio over HDMI in Ubuntu. More reading. There’s a script here that upgraded the ALSA installation to 1.0.19. In the sound applet, change everything to use HDMI (well, except audio-in). This is the place to start with this motherboard. Make sure you see the HDMI device in aplay -l and aplay -L.

I tested this through the sound applet and with aplay, nothing. Went through everything I could Google, nothing.

Finally, downloaded the newest driver from Nvidia. Wasn’t too sure about doing this, and as fate would have it, I didn’t install. The script didn’t like something, and gave me an error.

In an effort to find something that would give me ideas, I did an apt-cache search nvidia, and noted there was a 180 version out there in apt-get. On a lark, I went ahead and apt-get install’d that driver.

After a reboot, I tested with the sound control tool, and there was sound! Other apps, however, were still silent.

In summary – It is possible to get audio and video working over HDMI in both Vista (expected) and Ubuntu/Linux. This motherboard uses the Nvidia GeForce 8300, so I would expect the procedure would be similar for other Nvidia 8200/8300 based boards.

(This is short, I’ll be posting some more specifics to Tech-Recipes later)

Installed latest chipset pack from Asus
Updated video driver to the one from the chipset pack
Audio and Video are working over HDMI

Ubuntu / Linux:
Installed latest ALSA via the script on the Ubuntu Forums
Installed Nvidia driver v180 from apt-get
Audio and Video are working over HDMI

More to come…..I’ve got the following left:
LIRC remote is unstable, stops working after a few clicks
Need to research if TV can accept 6-channel audio, right now it’s taking stereo
Depending on TV, may need to research a HDMI receiver
Would like to get the onboard Ethernet working with Ubuntu so I can install the 2nd tuner card.
(future) procure and add remaining drives.
(future) procure and add additional 4GB RAM (not really needed, but would be nice)
(future) procure and add optical disk of some type.

Q raised a question about system cost. I got everything from Newegg, the motherboard was around $80, memory was around $50, and CPU was around $180. I’ll do a more detailed breakdown in another post, with some suggestions on cutting the cost further.

Wow, it’s been a while, but I wanted to start a few posts on a little project I have.

I’ve wanted a storage server for a while, but the cost hasn’t been at the “sweet spot” for me. Of course, by “sweet spot”, I mean cheap – the laptops around the house are sub-$500 models, which meet our needs very well, and I don’t worry too much about lugging them around.

The problem with multiple machines, and laptops in particular, is the lack of storage space and the ever-changing file version landscape. Enter my desire for a storage server….

Complicating matters, not only do I want this machine to do storage, but I would like for it to be a MythTV box as well. Bonus would be a dual-boot system able to do some gaming.

When CompUSA was going out of business, I grabbed a nice mid-tower case and power supply. Yes, that’s been stashed waiting on me to do something with it.

I added to this case an Asus M3N78-EM motherboard, a 2x2GB kit of G.Skill DDR2 1066 RAM, and an AMD Phenom 9950 Quad-Core. The nice thing about the motherboard is an integrated Nvidia GeForce 8300, and is DX10 and SLI-capable. This motherboard also has 2x PCI, handy for legacy tuner cards.

This leaves storage. There is a ton of talk on the net about the Seagate 1.5TB drives – both good and bad. The worst seems to be a firmware problem causing disks in an array to drop out. The issues are fixed in a later release of firmware, and the reports are generally good from the updated drives. The price/capacity point on these is outstanding, so I decided to take the risk with a couple of them. (Of course, as I write this, I see where Western Digital has announced a 2TB ‘green’ drive. Doh!) My intention is to add more drives as I use up the space moving my DVD collection to MythTV.

I got lucky on the drives, they arrived with the CC1H updated firmware.

So, components assembled, I lay down a partition scheme like this:
Disk 1: 225 GB Vista, 2 GB Linux Swap, 1175 GB partition for RAID
Disk 2: 10 GB /boot, 215 GB /, 2 GB Linux Swap, 1175 GB Partition for RAID
Disk 3: 225 GB Vista mirror, 2 GB Linux Swap, 1175 GB partition for RAID
Disk 4: 10 GB /boot mirror, 215 GB / mirror, 2 GB Linux Swap, 1175 GB Partition for RAID
Disk 5: 225 GB TBD, 2 GB Linux Swap, 1175 GB partition for RAID

Drop in the Vista64 DVD, and install away. Once Vista is up and running, update the video drivers with the motherboard CD, and the system gets a 4.4 Vista score – video is the weak link, the other scores are all 5.9.

Initially, I attempted to do a Debian install, but it didn’t like the drive controller, and kept telling me there were no drives! So, I tried my first-ever Ubuntu install. Color me impressed. The Ubuntu CD is both an install disk and a LiveCD, found the hardware, and installed without a hitch. Granted, this put more packages on the system than I really wanted, but I’ll live with that for now.

A couple of issues remain at this point – Sound and Video through HDMI. Part of the reason I chose this motherboard is the integrated HDMI port. Something’s not quite right, since I can’t get any signal out of HDMI in Windows or Linux – another round of chipset driver updates tonight, and I’m hoping the Windows side will be clear.

Since I wanted to start moving our digital photos over to the RAID, I needed to get that going. Having those on a single external USB drive has been bothering me.

Under Ubuntu, the two partitions are /dev/sda3 and /dev/sdb4. First, I needed mdadm, the array management utility.
sudo apt-get install mdadm
sudo mdadm --create /dev/md0 --level=raid5 --raid-devices=2 /dev/sda3 /dev/sdb4

Yes, that looks a little funny – raid5 with two drives. In retrospect, I should have done a “degraded”, using a missing keyword. This completed, took about 4 hours, and resulted in a clean array.

Amateur Radio, Part II

June 22nd, 2008

Well, I couldn’t stand it. After getting the technician license, I started studying for the general and extra exams. These aren’t too bad, a bit more math, more obscure radio trivia, but nothing insurmountable. Insurmountable enough I took both exams on the same night, passed both. I don’t recall how many I missed on General, but I missed 3 on the Extra test, good enough to become an Amateur Extra and get a new callsign! KE5TZB is now history, and I’m now AE5HJ.

I’ve gotten a Comet M-24s antenna for the Yaesu VX-7R HT. Much improved operation in the car! I also got a handheld speaker/mic for it. I wasn’t sure I would like operating a handheld device like that, but it is really nice in the car. I just wish it had frequency up/down controls.

The Gigaparts guys are great! Shipped my order the same day, no problems at all. If you’re in Huntsville, AL, run by their store.

Amateur Radio

April 12th, 2008

I’ve been saying I should become a licensed amateur radio operator for longer than I care to admit. Hurricane Katrina reinforced the need, and last week we had an extended power outage thanks to a tornado in the area.

I finally did it. I took and passed the technician exam, and I’m currently reviewing for the general class exam.

You don’t need to be an electrical engineer or rocket scientist to pass these tests, the electrical calculations are not that difficult or plentiful.

Some good manuals can be found at, good practice tests can be found at Test times and locations can be found on the ARRL website.

The whole point of this stuff is the ability to operate a radio on various 2m and 70cm bands, most areas have emergency nets operating on amateur frequencies. Amateur operators have a long history of providing communication assistance during disasters. Here is one example.

Off to study some more, and shop for an HT. Currently looking at the Yaesu FT-60R

This may be more like day 4.5, really.

It works! It works!

had a bit of a prob in my databases.yml – gotta put the the dbname at the end of the dsn. Yeah. Leave that off, and it gets very….confused.

So, now if I go to, I get a symfony-looking page that lets me put stuff in.

Bad news, it didn’t build the pull-down for type. Rats! Back to docs…

First try, pulled the type off of the link field – Have a pull down! (Yes, I left off the symfony clear-cache and symfony propel-generate-crud frontend type Type Too bad, I’m just seeing the primary key values in the pull down. More searching…..

…eeeee’s back!

So, I’m hanging out tonight, got Food Network in the background, and working on this db problem.

As you may recall from the last episode (more than a day ago, but work with me here), I was having issues getting the symfony config to connect to the database. After a few moments of exhaustive research, it looks like my problem was the user password. I….I…I… Naaah, that can’t be! Changed the password anyway, and my error message changed.

Now, the error looks like:

[propel-sql-exec] Failed to execute:

`type` VARCHAR,
`starring` VARCHAR,
`id_starring` VARCHAR,
[propel-sql-exec] Could not execute update [Native Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '
`starring` VARCHAR,
`id_starring` VAR' at line 3] [User Info:

`type` VARCHAR,
`starring` VARCHAR,
`id_starring` VARCHAR,
[propel-sql-exec] 3 of 4 SQL statements executed successfully

So, I’m thinking there’s an error somewhere. Likely suspect is the schema.yml file. Since nothing appeared in the db, I’m thinking the unsuccessful statement was the one that actually *does* something. Ugh!

To the schema.yml, Batman!

Ooh! Alton’s on! (anybody who wants to donate a Shun Santoku, leave a message, I’ll send my address……)

I did note an extraneous tilde (“~”) in the schema.yml, but, alas, it didn’t change the output much. Hmm…we’re trying to create the same table twice – that doesn’t look right.

Talked with Quinn (always helpful to make sure my head’s in the right place). He put me on to a great resource – The cheatsheet

So, the schema.xml has changed, again…

     type_name: varchar(15)
     dvdname: varchar(128)
     type: varchar(10)
     actor: longvarchar

Did the symfony cc and symfony propel-build-all, no errors! Looked in the dbAdmin side, and there are tables!

Back for a moment…

February 24th, 2008

Well, it’s been nuts around this household lately. For the whole story, peek at the other blog.

I’ve been looking at graphics tables for a long time, but just haven’t bitten the bullet. I hate to spend that kind of money on something I’ll just use from time to time. Wacom has released a new entry tablet though – the Bamboo Fun line. (where do they come up with these names?) My Amazon linkage: Bamboo Fun (Medium) Black Tablet with Pen, Mouse & Graphics Software This one isn’t quite so heavy on the price tag, so I’m thinking I’ll grab one.

I’ve also recently stumbled into Inkscape. Inkscape is an open source Illustrator clone, used for creating SVG images and whatnot.

UPDATE: I ordered the tablet. Should be here 2/28 – 3/4 timeframe. Looking forward to seeing how that helps with Gimp and Inkscape work, since I have a couple of projects going in those areas.