xum1541 firmware (beta)

The xum1541 is firmware for USB device(s) that connect a 15x1 drive to your PC. It is based on the Atmel AT90USB family of microcontrollers and is provided under the GPL license. It was developed by Nate Lawson, with testing and assistance from Wolfgang Moser, Spiro Trikaliotis, and Christian Vogelgsang. It uses code from the xu1541 by Till Harbaum and the LUFA USB library by Dean Camera.

The xum1541 is currently in beta, which means you'll have to build your own device and compile code from cvs in order to use it. It is quite stable and passes a lot of tests, including parallel d64copy in both directions. It also has nibbler support via nibtools. NOTE: both the host side (OpenCBM xum1541 plugin) and firmware protocols are still subject to change, so be prepared to upgrade both sides in the future.

While I plan to continue development of the firmware, I can't provide too much debugging support if you aren't capable of getting the device working on your own. At some point, there will probably be a packaged device available but not from me. So if you're not comfortable debugging your own hardware, you might want to wait.

Releases

Docs

Installation

The steps to get a working device are as follows.
  1. Build a board supported by xum1541 (see AT90USBKEY, below)
  2. Flash it with the xum1541 firmware
  3. Compile and install OpenCBM from cvs
  4. Compile and install nibtools from svn (optional)
Once you have a board, you'll need to install the firmware. You can get precompiled versions and the source from OpenCBM cvs. You'll need to check out both the cbm4win and xum1541 modules from here. In the xum1541 dir, you'll find one or more .hex files. These are the firmware images for various boards. See the xum1541 README for information on how to flash the firmware.

After you've got the firmware installed, you'll need to build OpenCBM from source. The xum1541 is not yet supported in any released versions of OpenCBM. Build and install the code in the cbm4win directory as specified in the OpenCBM README files.

As of this writing, OpenCBM has a plugin configuration file called "opencbm.conf". You'll need to edit it to list your xum1541 plugin as the default plugin.

If you want to enable high speed transfers and copy protected disks, you also need to install nibtools. Here's the latest source code from the SVN repository.

You're done! If everything is working ok, you can now use your xum1541 with OpenCBM, just like the previous interfaces.

Support

If you're having problems, please discuss on the OpenCBM-users mailing list.

ZoomFloppy board

The ZoomFloppy is a simpler version of the original design, intended for low-cost manufacturing with high-speed performance. It should be available commercially soon, which should make it the best choice for most users.

If you want to build it yourself, it can also be based on the Bumble-B daughterboard. However, the easiest option for DIY is the USBKEY board (above) since that only requires soldering a single connector (DB25) to the development board.

This device uses an ATMEGA32U2 microcontroller (AT90USB162 if you use the original Bumble-B). It has a 7406N hex inverter for better control of the pins. It runs at 5V with the board supplying power for the inverter.

For build info, see the included schematic, zoomfloppy-schem-*.png.

Here's a pic of the breadboard version of the ZoomFloppy. The 7406 is on the left of the Bumble-B cpu board. The IEC serial port is on the far left. The parallel connections for the 1541 go off the bottom.

xum1541 AT90USBKEY board

This is the first generation board and is based on the Atmel AT90USBKEY developer's kit. The firmware was designed to be modular so there will be other boards some day. See the xum1541 README for pinouts and build info.

Here are some pics of the xum1541-AT90USBKEY model. As you can see, the devel board is connected directly to an XAP1541 adapter via a DB25 port. The "S" and "P" mean IEC serial and parallel connections.

Here is a more detailed picture.


Copyright © 2005-2010 Nate Lawson nate // root.org