UFE is an SD/MMC floppy drive emulator for old computers. It connects to the floppy drive port of the host computer and behaves like a real floppy drive, except that the data comes from the SD/MMC card instead of real media. It is the successor to TFE, my previous floppy emulator project.

Latest Update: UFE now supports the Amiga 1200! See below for new pictures.

Motivation

A number of SD/MMC floppy emulator projects existed around the time I started working on UFE. These worked well, but there were limitations. The most notable limitation was poor support for the Amiga computers, including lack of write support. In addition, the user interfaces of the existing floppy emulators were not practical. They were either based on a small LCD screen and a few buttons, or they had external connections such as joystick and video ports. Generally, major case modding was necessary.

The underlying philosophy behind the UFE design is that it should support a just few computers, but it should support them as well as possible. The host computer’s keyboard should be used for controlling the floppy emulator. The video output should be overlaid on top of the host computer’s video output. Read and write operations must be fully supported. All these features make UFE an ideal drop-in replacement for a real floppy drive.

Addendum: The statements made in this “Motivation” section simply represent -my own- views of the floppy emulator situation at the time I started this project. Specifically, it has been brought to my attention that the claims regarding “practicality” and “major case modding” may be exaggerations… It is up to you to decide.

Video

The video above shows UFE in operation, including write support. Sorry about the quality, the resolution is low and there are sync issues between audio and both feeds, but it should still give a good idea of how UFE works. Here is what happens in the video, in a nutshell:

The SD card contains a couple of images: XCopy.ADF and State of the Art.ADF (demo by Spaceballs). XCopy.ADF is mounted into DF0. Amiga boots from it. Once XCopy loads, State of the Art.ADF is mounted into DF0 and XCopy.ADF is mounted into DF1, with write-protect off. Using XCopy, contents of DF0 are copied over onto DF1. Once copy operation is over and the red LED turns off, the XCopy.ADF on the SD Card has been overwritten with contents of State of the Art.ADF. Amiga is cold rebooted. Xcopy.ADF (now containing State of the Art demo) is mounted into DF0. Amiga boots into the demo.

Capture setup: A520 modulator and 4-channel BT878 capture card.

Features

Read/Write access for Commodore AMIGA, Atari ST and Amstrad CPC computers.

On-board support for ADF, DSK, ST and MSA images. No conversion on PC necessary.

Standard IDC 34-pin floppy connector.

Can emulate two floppy drives.

Video overlay user interface: 72 columns by 30 lines text mode.

Allows use of host system keyboard to control user interface.

Buzzer for emulating head stepping ticks.

Can co-exist with other floppy drives on the same bus (not tested).

Full FAT32 support (incl. long file names and directories) for the SD Card. SDHC support.

Firmware updates can be made through SD Card.

Completely solderless installation.

PIC32 MCU @80Mhz, 16Mb SDRAM. Double-sided PCB.

Remarks

Other computers with WD1772 or UPD765 controllers may work, but have not been tested.

Video output is disabled when floppy emulation is active.

SD Card must be formatted with FAT32 file-system with a minimum cluster (allocation unit) size of 8192 bytes.

Host keyboard control currently only available on Amiga 500 and Amiga 1200 computers (support for more computers are planned).

only available on Amiga 500 and Amiga 1200 computers (support for more computers are planned). Write support for DSK, ST and MSA images not implemented yet (to be added in future firmware versions).

(to be added in future firmware versions). Copy-protected Extended DSK images are not fully-supported.

Mounting an image (MFM-conversion) takes around 3 seconds on average (depending on SD card speed and image size/type). Optimizations in future firmware are expected to reduce loading time.

How to Use

Pressing the activation key combo (e.g. Left Alt-Left Amiga-Right Amiga) activates the UFE user interface. Key events are directed to UFE so that images can be mounted and settings can be modified. Arrow/Enter keys are used to navigate the menus. The host system does not receive any keyboard events while the UI is active (until the user selects “Continue” from the UFE main menu).

While the UFE UI is active, floppy emulation is disabled. Emulated drives behave as if they are empty. When floppy emulation is active, the yellow LED indicates ongoing floppy activity (drive motor(s) on), and the red LED indicates there is updated data in UFE memory not yet written to the SD card. After floppy write operations, the user must wait until the red LED goes off before removing the SD card.

Installation

UFE Rev A2 board has the following connectors:

Power: Standard 4-pin floppy power connector. 12V pin is the one closer to the side border of the board.

Floppy IF: Standard 34-pin floppy interface connector.

Keyboard: 6-pin connector to keyboard daughterboard.

Video: 8-pin connector to a wiring harness that connects to Red, Green, Blue and Composite Sync points on the host system mainboard.

The A500 Keyboard Daughterboard is designed to plug into the keyboard connector on the A500 motherboard. The connector from the keyboard plugs into the keyboard daughterboard.

Similarly, the edge connector on the A1200 Keyboard Daughterboard is designed to plug into the keyboard connector on the A1200 motherboard (after removing the white plastic lock). The ribbon from the keyboard connects to the keyboard daughterboard.

FAQ (as of July 2010)

What’s the current status of the UFE?

Hardware and software is operational. I plan to organize a beta stage with a small group of select users soon.

Will it be possible to purchase the UFE?

A suitable company or person needs to be found to handle production and sales.

Do you have any plans to release detailed technical information (firmware sources, PCB layout)?

Not right now, but this may change.

Do you have any plans to add support for other host computers / image formats?

Yes, but only if they comply with the basic requirements for the current UFE hardware (RGB video output and standard floppy interface).

Schematics

Background

The development progress of the UFE and its predecessors are thoroughly documented in my main blog (posts tagged UFE). But here is a brief summary, anyway:

The first floppy emulator project I’ve worked on is the TFE. It was quite successful in its own right, but it had a number of shortcomings that I’ve described in detail above. These issues prompted me to look for different design ideas. I first designed a piece of hardware similar to the current UFE, in that it also used PIC32 MCU and SDRAM, but had a color TFT touch-screen LCD for user interface and USB input instead of SD card. Unfortunately, this hardware never saw the light of day, as I got sidetracked by other projects.

After a while, I realized that it could be nice to have video overlay and host keyboard controls for the floppy emulator user interface, making it much more practical to use, especially for computers with drives built-in. I extended the original TFE design to accommodate the changes required, resulting in the TFE+. The core of TFE+ was almost the same as the original TFE, but it used an overclocked ATmega644 instead. After some experimentation with the TFE+ design, it became clear that it was too weak to be able to support write operations on Amiga computers. So I took the best features of the TFE+ design and the original PIC32-based design, and created the UFE as a result.

Acknowledgments

Special thanks go to Ozkano, LW3D, and Alcofribas.

Page History

Aug 09, 2010: A1200 support (w/ pictures) added, acknowledgments added, minor changes.

Jul 10, 2010: Initial publication.

Disclaimer

This information here is provided AS IS without any express or implied warranties. While every effort has been taken to ensure the accuracy of the information contained in this text, the author assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. I will not be held responsible for any damages or costs which might occur as a result of anything related to projects described or referred to on this page. You are not allowed to use information contained in these pages for commercial purposes without my written authorization.