reading k2000 / k2500 / k2600 / k2661 cdroms on a pc for free

Not too long ago my last SCSI CD-ROM drive failed. I still have a number of Kurzweil CDROM discs with useful sample libraries on them that I’ve been unable to read as a result – they were made prior to the 3.61 update that added ISO-9660 support.

Marc Halbruegge wrote a fantastic program, KCDRead.exe, that lets you read these older CDROMs and dump the files to a folder on a Win 95/NT/2000 machine. Sadly it didn’t work on XP or newer 32- or 64-bit Windows releases…until now.

In newer Windows, there is a SCSI PassThrough Interface (SPTI) that replaces the old ASPI interface. Someone wrote an ASPI-to-SPTI converter called FrogASPI that runs in usermode and requires no kernel module or driver.

To make this work with kcdread.exe:

0) Download KCDRead from .

1) Download FrogASPI from .

2) Extract the frogaspi.dll file. Rename it to wnaspi32.dll and copy it to the same directory as kcdread.exe.

3) Run kcdread.exe. It will be able to directly read Kurzweil CDROMs in your physical CDROM drive.

Thanks to Marc again for creating such a useful program!

part 1: MH3000 / RoVa3D tools & setup

A while back I went in halfsies on an MH3000 KickStarter printer from ORD Solutions, just down the road in Cambridge, ON. As there’s still under 100 of these printers out there, it can be a bit hard to find information on how to get going with one. Here’s some tips from my first 100 hours of operation.

Links are not affiliate-type, so if you want to thank me for putting this together, send me a tweet @wohali or reply to this post.

Essential Tools

You absolutely need these tools, or you’ll be pulling your hair out in short order. Buy them while you’re waiting for your printer to ship. I keep all of these right by the printer.

  1. Protective safety gloves. I recommend: one, two. Don’t burn your hands on 240C nozzles or 70-100C beds. Your fingers are more precious than a $2000 printer.
  2. Calipers, analogue or digital, with metric readout. I recommend: one, two. $20-$30. You’ll be using these all the time to measure all sorts of machine tolerances, printer parts, filament width, things you want to replicate with your printer, things you print out, etc.
  3. Hobbyist long nose pliers. I recommend: one, two. $5-30. These are great for getting in underneath the print head and pulling off globs of melted filament, and keeping your fingers far away, safe and not burned. I use these all the time to deal with oozing PLA just prior to a print.
  4. Hobbyist diagonal cutters, full or semi flush cut. Many options, here’s one. $5-30. I use these to cut filament, wires, strip wires (carefully), and sometimes stray printed filament off of a print in progress. You need this more often than you realize, and small cutters are easier to use than scissors or a larger pair.
  5. Hobby knife with extra #11 blades. I recommend: one. These are useful to clean up printed items, but more importantly these help keep your nozzles clean if they drag through printed parts accdentially as you can scrape off the filament easily. You can also use the blades (carefully!!!) to lift parts from the print bed. If you do this, remove the blade from the knife and place the entire blade edge flat against the print bed at a low angle. Work the blade slowly under the part until it detaches. Do this at multiple points around the perimeter of the part.
  6. Feeler gauges. I recommend: one, two. $10-25. You’ll need these to “gap” the space between the print bed and the nozzles, and to re-validate anytime you adjust the print carriage. The Lee Valley set here is superior because they’re 5 1/2″ long and focuses on thinner sizes, even though you’ll need to convert from imperial to metric. (Most sets at e.g. auto supply shops are only 2-3″ long.)
  7. 5″ (short) 10mm wrench. I recommend: one. This is required for adjusting the height of the print nozzles. I believe KS2 backers now get this included, but I might be wrong.
  8. 6″ adjustable wrench. I recommend: one, though mine is thinner. For tweaking all the various nuts on the printer without needing a full wrench set.
  9. Some clean rags / washcloths
  10. 100% Acetone. $5-10. Available at any paint store.
  11. Window cleaner in a spray bottle. $5. You’ll want this to apply Kapton tape to your print bed. Mine’s citrus based because it smells nicer than melted plastic. :)
  12. Old / inactive / promotional credit card. I use an empty Tim Hortons gift card (they’re free!) You’ll use this to “squeegee” the tape.

Filament storage

One thing that I had to figure out for myself is that PLA and ABS both like to absorb moisture from the air. Have a drying solution figured out before you unseal the filament from the bags as they arrive. This means a resealable air-tight container with a dessicant large enough to hold the filament spools – the ORD spools are 10″ in diameter.

I assembled containers from buckets to keep my filament dry. The cost is about $25. You need:

  1. A clean bucket, anything from 3.5 to 7 gallon works
  2. Gamma Seal Lid
  3. Reusable SIlica Gel Dehumidifier
  4. 5cm of hook and loop tape (e.g. Velcro)
  5. Your filament, of course!

Assembly instructions:

  1. Spin ring off of Gamma Seal lid. Place on top of bucket. Invert and apply mallet or foot until well seated.
  2. Attach dehumidifier to lid using strip of hook and loop tape.
  3. Place spools of filament into bucket. A 5 gallon bucket will hold 4 ORD Solutions spools.
  4. Spin on lid.

Here’s a short video of the finished product. The dehumidifier crystals turn clear when saturated with water, and can be “recharged” in an oven for 3h at 300F. They last indefinitely.

If you leave your filament out for even just 24h, it can start to become water logged. You’ll know this happens when you are extruding and you see steam rising or hear a quiet “popping” sound, or for transulcent filament you see bubbles in the extruded filament. To fix this, you can put the spool in a 150-170F oven for 1-3h, and let thoroughly cool before use. Be careful to calibrate your oven before trying this!

Optional tools

I have all of these – you can get by without them if on a budget, but for best results I recommend them. Sorted in priority order:

  1. Den-On 70-51-00 Cleaning Pin Set. $6. Picture here. This is an incredible tool, which is effectively 3 14cm long wires, of 0.8, 1.0 and 1.5 mm gauge, held together by a soft green rubber. You can use these to clear blockages in the hot ends while they’re still hot and push stuck filament out of the extruders.
  2. 9/32″ socket driver. $5. I use a screwdriver that takes various bits and a socket from a kit similar to this one. This is the exact size for the nuts underneath the print bed. With a screwdriver handle you can more easily give all 3 printer bed nuts the same amount of turn and raise the print bed evenly, or offset by 1/8 of a turn if you want to tilt it just slightly.
  3. Zip and twist ties. I use quite a few of these for cable management.
  4. 12″ / 30cm metal ruler. $5-10. I have a cork-backed Westcott R590-12 that I probably bought for school years ago. For general measuring.
  5. IR Thermometer. I recommend the Pro Exotics PE-2. $40 with free US shipping. This unit has an adjustable emissivity setting, which you can use to adjust for the different properties of materials you’re measuring.
  6. 12″ Starrett straight edge or rule. I recommend: one, two. $60. You can’t buy a better straight edge, as these are accurate to ±0.0002″ per foot. This plus feeler gauges will help you determine any warp, bump or cup in your printer bed. I find this a faster approach than mounting a dial indicator to the print carriage and measuring values all over the bed.
  7. Dial indicator + optional metal base. I recommend: one. I used this prior to getting the Starrett straight edge for checking bed flatness. They’re still useful for checking out-of-round for various metal printer parts, but this is an advanced step that many of you won’t need. You can print a holder that mounts to the X carriage to measure flatness of the bed. I don’t recommend this approach anymore, as dial indicators are both more expensive and more fiddly than using a straight edge plus feeler gauges.


These videos and the text below them walk you through the most salient points. I picked up my printer from the factory, so I skipped the first 3 videos.

Setup tips and tricks

  1. I had a hard time figuring out how to use the lint-free cloth to act as a filament wiper. First, save your twist ties as you unbundle cables. Cut the provided cloth into strips. After feeding filament into the extruder, below the short tube that’s below the extruder, wrap the cloth around and around the filament like you’re wrapping a sprained ankle. Use the twist tie to hold the cloth against the filament. I wrap the tie around 5 or 6 times, then leave about 3cm free for twisting together to apply sufficient friction. You want to tighten the twist tie enough so that, as the filament feeds, most of the cloth stays below the tubing.
  2. When feeding the filament, note that the hole in the extruder is smaller than the hole in the mounting plate. As a result you may find the filament gets stuck in that lip. Don’t force it! I lost a huge piece of my thumbnail when my hand flew up into the extruder gear. You could probably epoxy/fill in the lip to have a smoother infill, but I’ve not tried this yet.

My next article will be about the software stack.

Understanding race-induced conflicts in BigCouch

Distributed databases with a near-real-time multi-master configuration – such as BigCouch, coming soon to Apache CouchDB – must deal with the potential of simultaneous modifications of a single resource. While the approach taken by multiple single-machine Apache CouchDB servers using regular HTTP replication is well understood, the situation changes a little bit when dealing with BigCouch-style internal replication inside a cluster.

I think it’s time to have a better understanding of what this means, and what impact this has on you as an application developer. Most of the time, there’s no change – to your app, a BigCouch-style cluster looks and feels like a single Apache CouchDB node. But when making near-simultaneous writes to the same document from different clients, you may experience document conflicts that you wouldn’t have with an Apache CouchDB 1.x single server.

How does this happen? Bear with me – this gets a bit complex. Hopefully this diagram will help.

Continue reading

Why I’m dropping the IEEE email address I’ve had since 1993

The IEEE just can’t get it right anymore. For a couple of years I’ve openly derided their their laughable policy on open access publishing that requires you to prove your grant requires a Creative Commons license. Add to that the fact that at least since 1997, you can’t be an IEEE member in the US without funding the part of IEEE that works actively to destroy all technology H-1B visas, and most importantly their handover of email services to Google Mail in June 2013, and I’m at my breaking point.

I’m officially dropping my email alias that has served me since the service was introduced in the early 1990s.

I really liked having a stable email address. When it was first set up, email to it ended up at a VME-based Sun 4/260. But the convenience of 20 years of the same address is nowhere near as important to me as not supporting the policies of the IEEE any longer.

I am paying my membership dues one last year – through 2014 – to give everyone ample time to get used to the new address, [wohali at-mark this website’s address]. Any personal email to the IEEE alias will be responded to with a Reply-To at my new address. After Dec 31, 2014, will no longer work.

on the workbench: kurzweil k2500(sw)x

I’ve owned my Kurzweil K2500SWx since shortly after it was released in the summer of 1998. It’s always been my primary controller keyboard for the studio, usually sitting between the monitor and the computer keyboard tray. When I lived in Japan for two years, it was the only synth to come with me; the rest went into deep storage or were loaned to friends. I find its VAST architecture very flexible, and it’s still nice to have a hardware sampler, even if it’s limited to 16-bit 48kHz.

Waynemanor Studios 2.0, circa May 2010.

So it’s no surprise that it’s had a few mishaps over the years. And while Sweetwater graciously offers “lifetime free technical support,” there’s the hassle of shipping the unit across an international border, and the scarcity of parts to deal with.

This holiday weekend I fixed 4 nagging problems: a digital jitter, a failed front-panel button, failed aftertouch and a fading front-panel display. Here’s how, since it took me a while to research and maybe you’ll need to do it yourself someday.

Continue reading