Commodore 1541 5.25″ FDD Repair & Modification

When I first started collecting vintage computers, I promised myself that I wouldn’t buy floppy disk drives – they’re expensive, they’re unreliable, they take up a lot of room, and there are a range of modern equivalents available for loading files (such as the SD2IEC), so what was the point? Then I ended up getting one, and then another, and another one – since then I’ve accumulated quite a selection of Commodore 5.25″ and 3.5″ FDDs, so it seems that my promises aren’t worth much.

The Commodore 5.25″ line of FDDs are, effectively, computers in their own right – they have their own 8-bit CPU (usually a 6502 running at 1MHz, the same as in the VIC-20 computer), their own ROM (usually 16KB) with their own operating system (CBM DOS), their own RAM (usually 2KB), and their own I/O control (usually two 6522 VIAs, the same as the VIC-20 computer). This makes them large, heavy, and expensive – many cost more than their counterpart computer did back in the day, meaning that they were often out-of-reach for the average user and, as such, they were not very popular in Europe.

Despite all of their processing power, the 1541-series were nail-bitingly slow due to a fatal flaw: they were designed to be backwards-compatible with the earlier Commodore 1540, which was released alongside the VIC-20. In itself this doesn’t sound too bad, however the MOS 6522 VIA interface controller IC used in the 1540 had a hardware bug which prevented its internal shift register from working correctly, meaning that the DOS had to handle all of the data serialisation (in a far less efficient manner) in software.

Let’s demonstrate this with some numbers. On the VIC-20 and C64, CBM DOS transfers at 2,400 baud, which is pretty fast in comparison to the 300 baud of the Commodore 1530 Datasette – however, this is very sluggish when compared to the 19,200 baud of the Atari 810 and the 120,000 baud of the Apple Disk II.

Because the computer and disk drive are both easily programmable, third-party “fast loader” applications (such as Epyx FastLoad, Final Cartridge, and Action Replay, typically loaded from a cartridge) were developed which could bypass the compatibility routines in CBM DOS and achieve speeds of up to 32,000 baud without hardware modifications.

This speed increase can be improved upon even more by modifying the hardware, and replacing the Kernal ROM in the computer and the DOS ROM in the drive using a more efficient implementation (i.e. JiffyDOS).

But, I digress. Back to the main point of this article.

I bought this Commodore 1541 as spares/repairs – according to the seller, it would power up correctly but gave a “?DEVICE NOT PRESENT” error when trying to access it. The drive was a bog-standard beige 1541 with a longboard and an ALPS head mechanism, and aside from being very dirty it seemed in pretty good shape.

“?DEVICE NOT PRESENT” error when trying to access the drive.

Upon its arrival, I confirmed that the seller was correct – the drive reset and powered up correctly, but would give a “?DEVICE NOT PRESENT” error when accessed.

I then set about diagnosing the problem, the first step of which was cleaning and servicing the drive – cleaning and lubricating the upper disk mount and stepper rails, and cleaning the head. However, this didn’t make any difference.

I checked that the 5Vdc and 12Vdc power rails were OK, and they were present and stable; I cleaned and reseated all of the socketed ICs, which didn’t make any difference; I checked all of the tantalum capacitors on the board for shorts, but all were OK.

I then inspected the board more closely, and noticed that one of the drive select jumper traces had been cut, setting the drive address to “9” instead of the default, “8”.

Drive address jumper (closed by default) cut, changing the drive address to “9”.

I soldered the jumper back to its factory position and re-tested the drive, which then functioned correctly. Testing using a 1541 diagnostic cartridge, the drive passed all mechanical tests, and had good alignment and speed.

Drive now accesses disks correctly.

Now that the drive was working, I wanted to do some experimentation (just for fun, because the drive was cheap), as inspired by a video by Adrian Black.

Due to its internal linear PSU which is very inefficient, the 1541 is well known for its hot operation, which can reduce the lifetime of the ICs and contribute towards drive misalignment – however, advances in power supply design over the past few decades mean that it would be possible to retrofit a modern switch-mode PSU into the drive.

I originally did this in 2019, then I updated the modification two years later, in 2021.

2019 Modification Overview

I originally chose to install a Meanwell D-60A 60W self-contained SMPS, capable of delivering +5Vdc at up to 4A and +12Vdc at up to 3A, plenty enough to power the FDD.

Meanwell D60-A switch-mode 60W PSU.

So the mainboard could still be removed from the drive, I decided to use a Molex 4-pin power cable from a PC to connect the two. I repurposed a spare Molex cable and fitted it to the PSU, using standard wiring colours (red = +5V, yellow = +12V).

I then removed the drive chassis, unscrewed the original 240Vac transformer, and clipped the live and neutral wires from it – I then extended and crimped the live and neutral wires, and added an earth strap to the chassis.

I then mounted the PSU inside the drive chassis (it just about fit!), and connected up all of the cabling on the mains input side (live, neutral, earth).

I then set about making the required modifications to the PCB – because the rectification and regulation circuitry was no longer required (as this is all handled by the new PSU), most of the power-related components could be removed, including the large smoothing capacitors and the two TO-3 voltage regulators and heatsink.

Again, I repurposed a Molex cable and soldered it to the ground and output pads of the 5V and 12V regulators, using standard wiring colours (red = +5V, yellow = +12V).

The mainboard could then be connected to the PSU, and installed into the drive chassis.

I then did a smoke-test and tried the drive out – it started up as normal and, as you can tell from my surprise in the video that I took, it seemed to work great!

Modified drive loading a disk directory correctly.

So, the experiment was a success, and I ended up with a cooler-running (and therefore more reliable) Commodore 1541 that weighed about half of what it did before.

2021 Modification Overview

After some time had passed, I decided to revisit this project – at this stage I had more experience, some inspiration from Twitter, and some spare time and motivation.

This time around, I wanted to perform a more professional installation, and I also wanted to use a physically smaller SMPS: in this case, the Meanwell RD-50A (which is capable of delivering +5V @6A and +12V @2A).

As with the last time, I used a Molex 4-pin power cable to connect the mainboard and PSU, so the mainboard could still be removed from the drive. I crimped the cable and fitted it to the PSU, again using standard wiring colours (red = +5V, yellow = +12V).

I then removed the old SMPS from the drive chassis, and prepared the live and neutral wires and earth strap for connection to the new PSU using ring crimps.

I then mounted the PSU inside the drive chassis using high-strength mounting tape, and connected all of the cabling on the mains input side (live, neutral, earth).

I also amended some of my previous modifications to the mainboard, starting with removing the redundant bridge rectifiers and moving the Molex power cable to their output pads, again using standard wiring colours (red = +5V, yellow = +12V) – this also meant bridging the input and output of the two regulators.

I also removed the two shield cans around the oscillator section, purely for aesthetical reasons – these don’t really serve any functional purpose. This is a difficult endeavour, even with a desoldering station, as the large masses of metal sink heat away quickly.

I also reinstated the two large smoothing capacitors, C16 (4700uF 16V) and C17 (6800uF 25V), to try to ensure that the DC outputs from the SMPS are as smooth and as stable as possible. Whilst doing so, I also replaced all of the other electrolytic capacitors on the mainboard, for preventative maintenance purposes.

I usually remove each capacitor one-by-one using my desoldering station (a Duratool D00672) and immediately install a replacement, taking particular care to ensure that the value, voltage rating, and orientation of the new capacitor are correct – electrolytic capacitors are polarised, so must be installed the correct way around, else they’ll cause problems later (potentially even blowing up during use). I then clean up all the remaining flux residue or heat marks using 99.9% IPA.

You can’t always trust the markings on the PCB silkscreen, as sometimes mistakes were made in the design from the factory (take the Commodore CD32, for example), so care must be taken to match the orientation of the new capacitor with the original.

I used a commercially available capacitor pack from Retroleum.

The mainboard could then be plugged in, and reinstalled into the drive chassis.

As this is my test drive, I also installed 2.54mm jumper switches onto the two device address select jumper pads, allowing the drive address (8, 9, 10, 11) to be set easily.

I then did a smoke-test and tried it out – as before, the drive seemed to work fine.

Modified drive loading a disk directory correctly.

After all this work was performed, I did some finishing up: I thoroughly cleaned the mainboard with compressed air and an ESD-safe brush; I thoroughly cleaned the case inside and out using Cillit Bang general-purpose degreaser, a microfibre cloth for large areas, and a toothbrush for small areas; I also cleaned the read/write head using IPA and a cotton swab, and lubricated the stepper rails and top mount with lithium grease.

The drive still seemed to work OK following all of my modifications, but thorough testing is necessary to verify correct operation, so I did as much testing as I could.

  • Tested performance with 1541 diagnostic cartridge.
  • Checked alignment with factory test disk.
  • Status LEDs (power, drive activity) work OK.

Published by themightymadman

A conscientious, intelligent and committed graduate engineer, with excellent interpersonal skills, an eye for detail and a keen interest in hardware design, mathematics, and software development.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: