{"id":1278,"date":"2024-07-03T20:41:50","date_gmt":"2024-07-04T00:41:50","guid":{"rendered":"https:\/\/claymccauley.info\/?p=1278"},"modified":"2024-07-03T20:41:50","modified_gmt":"2024-07-04T00:41:50","slug":"homebrew-floppy-controller-repair","status":"publish","type":"post","link":"https:\/\/claymccauley.info\/index.php\/2024\/07\/03\/homebrew-floppy-controller-repair\/","title":{"rendered":"Homebrew floppy controller repair"},"content":{"rendered":"\n<p>A while back, <a href=\"https:\/\/claymccauley.info\/index.php\/2022\/09\/11\/building-custom-boards-for-retro-pcs\/\" data-type=\"link\" data-id=\"https:\/\/claymccauley.info\/index.php\/2022\/09\/11\/building-custom-boards-for-retro-pcs\/\">I built a couple of DiY interface cards<\/a> to help with restoration and testing of old XT\/AT machines.  One of those, the XT_IDE card worked perfectly and is now permanently installed in the DTK 286.  The other, while it worked initially, developed a mysterious issue that would cause it to glitch and no longer work.  At first I thought this might just be a bad controller IC as it was a used vintage part with unknown history.  I bought a pair of replacements from different sellers in China, but neither one solved the issue.<\/p>\n\n\n\n<p>I went down a rabbit hole testing and probing on the board, eventually finding a strange issue that, oddly enough was the clue to the real problem.  (only I didn&#8217;t realize it at the time)  The bottom of the board has 2 identical 74LS logic ICs in neighboring sockets that are hooked up to some of the data &amp; interrupt lines of the ISA bus.  When probing with a multimeter, I discovered one of the chips wasn&#8217;t connected to ground.  I checked the board and at the time didn&#8217;t see any damage, so I assumed one of the sockets had a bad contact.  As a temporary fix, I added a bodge wire to link the ground pin on the affected chip to the functioning ground of the other chip.  Sadly, this didn&#8217;t improve the situation at all.<\/p>\n\n\n\n<p>I had thought for sure the bus interface was the issue, so when that didn&#8217;t pan out, I decided to see what I could learn by tapping the various signals between the floppy drive and the controller and seeing if I saw anything weird on the oscilloscope.  At the time, the controller would sort-of work for a few minutes on cold start, but would then degrade and eventually stop reading disks all together.  After several sessions and still not seeing anything definitive on the scope I gave up for a bit.  Nothing I&#8217;d tried had worked.<\/p>\n\n\n\n<p>Recently, I sat back down at the workbench and decided to go over the board in detail and see if there was something simple I&#8217;d missed.  I brought my reading glasses and used my craft light with its big magnifying glass to go over the PCB in detail.  (sadly my eyes aren&#8217;t what they used to be)  The first thing I noticed was the flux residue on the board.  This hasn&#8217;t been a problem with previous projects, so I&#8217;d left it in place previously, but I decided to remove it just in case.  I cleaned all of the flux residue off the board with 90% IPA and a toothbrush and then absorbed the mixture into a paper towel to remove it.<\/p>\n\n\n\n<p>Once the residue was removed, I found the cause of the original issue.  The chip with the ground problem had a cold solder joint that had broken loose.  That was an easy fix, but not believing it to be the only issue I kept searching.  The more I looked the more problems I found, mostly with bad solder joints, excessive solder, or spatter in some of the small gaps between connections that could have caused a short.  I&#8217;m pretty sure a lot of this is due to the Ryobi soldering iron I use that enters a power saving mode periodically.  It&#8217;s an annoying feature that only serves to cause poor soldering.  I probably spent 30-45 minutes inspecting every connection and trace and touching up\/cleaning anything that looked off.  In the end, I&#8217;m not sure if it was just the floating ground on the 3-to-8 decoder\/demultiplexer, or something else I fixed, but when I hooked up a floppy drive to the controller it appeared that it might be working.  A few tweaks to the ROMs and controller configuration and I was able to confirm that it was indeed fixed.  In the end, I probably could have saved myself the trouble if I&#8217;d been more patient and checked my work when building the board in the first place, however it was a good opportunity to practice some low-level troubleshooting.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A while back, I built a couple of DiY interface cards to help with restoration and testing of old XT\/AT machines. One of those, the XT_IDE card worked perfectly and is now permanently installed in the DTK 286. The other, &hellip; <a href=\"https:\/\/claymccauley.info\/index.php\/2024\/07\/03\/homebrew-floppy-controller-repair\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[212,2],"tags":[],"class_list":["post-1278","post","type-post","status-publish","format-standard","hentry","category-retro-computing","category-tech"],"_links":{"self":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/comments?post=1278"}],"version-history":[{"count":3,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1278\/revisions"}],"predecessor-version":[{"id":1281,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/posts\/1278\/revisions\/1281"}],"wp:attachment":[{"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/media?parent=1278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/categories?post=1278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/claymccauley.info\/index.php\/wp-json\/wp\/v2\/tags?post=1278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}