Giter Club home page Giter Club logo

openflops's Introduction

OpenFlops

OpenFlops is an Open Hardware Floppy Disk Drive emulator/simulator.

Board

Summary

From Wikipedia:

Older models of computers, electronic keyboards and industrial automation often used floppy disk drives for data transfer. Older equipment may be difficult to replace or upgrade because of cost, requirement for continuous availability or unavailable upgrades. Proper operation may require operating system, software and data to be read and written from and to floppies, forcing users to maintain floppy drives on supporting systems.

Floppy disks and floppy drives are gradually going out of production, and replacement of malfunctioning drives, and the systems hosting them, is becoming increasingly difficult. Floppy disks themselves are fragile, or may need to be replaced often. An alternative is to use a floppy disk hardware emulator, a device which appears to be a standard floppy drive to the old equipment by interfacing directly to the floppy disk controller, while storing data in another medium such as a USB thumb drive, Secure Digital card, or a shared drive on a computer network. Emulators can also be used as a higher-performance replacement for mechanical floppy disk drives.

OpenFlops is an Open Hardware implementation of such an emulator, inspired from the ubiquitous Gotek hardware. It is designed to run the FlashFloppy firmware, which gives it several improvements over the original Gotek:

All of this comes in the same form factor (and mounting holes) as the board installed in the original Gotek, hence it can be easily installed in any shell or enclosure designed for it.

Assembly and Installation

Solder all components to the board. I suggest starting with the main microcontroller (U3), as it uses an LQFP package which is tricky to solder: the recommended technique is drag soldering, there are many videos about that on YouTube, so please look there for advice. I recommend soldering the bare minimum components needed for programming and then trying to flash it right away. This way you will be able to fix your soldering without too many components getting in the way, if needed. You will need a USB/TTL Serial converter for this: one with 3.3V I/O level is recommended, but a 5V one can be used, too (most pins on STM32 microcontrollers are 5V-tolerant, so don't worry, it's not a bad hack!). You shouldn't pay more than 1-2€ for it in any case, anyway. So, when you are ready:

  • Solder U3, Y1, C3 and C5, then the programming header (the top one with power, BOOT0, TX, RX, etc.)
  • Check for shorts on the 3.3V power lines, you can easily do this on the pads for C6-C10
  • If your USB/Serial adapter has a 3.3V output, connect it to 3.3V on the power header, then connect ground, RX and TX
  • If no 3.3V output is available, solder U4 and power the board through the 5V pin on the power header

Now you should be able to program the STM32 microcontroller. If you have difficultes you can try adding R10 (and C4) and maybe a few of C6-C10, but most likely the problem will be with the solder joints on U3, as soldering this kind of package manually is never easy, so please get a lens (or even better, a microscope) and double-check your job.

The serial adapter is only necessary for the first flashing. Subsequent updates can be done easily via USB.

Note that most components are necessary, but there are a few you can skip if you are feeling lazy:

  • If you are not interested in the head movement sound, you can skip the following components: SPK1, D2, R5, R6, Q7.
  • If your LCD/OLED display already has pull-up resistors for the SDA/SCK lines (most do), you can skip R3 and R4.

Configuration

Please refer to the FlashFloppy wiki for the initial setup and an overview of the available configuration options.

Some options that you will want to override the default values of, in order to take advantage of all the features OpenFlops provides, are the following:

  • motor-delay
  • rotary
  • display-type

Releases

If you want to get this board produced, you are recommended to get the latest release rather than the current git version, as the latter might be under development and is not guaranteed to be working.

Every release is accompanied by its Bill Of Materials (BOM) file and any relevant notes about it, which you are recommended to read carefully.

License

The OpenFlops documentation, including the design itself, is copyright © SukkoPera 2019-2020.

OpenFlops is Open Hardware licensed under the CERN OHL v. 1.2.

You may redistribute and modify this documentation under the terms of the CERN OHL v.1.2. This documentation is distributed as is and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES whatsoever with respect to its functionality, operability or use, including, without limitation, any implied warranties OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE or infringement. We expressly disclaim any liability whatsoever for any direct, indirect, consequential, incidental or special damages, including, without limitation, lost revenues, lost profits, losses resulting from business interruption or loss of data, regardless of the form of action or legal theory under which the liability may be asserted, even if advised of the possibility or likelihood of such damages.

A copy of the full license is included in file LICENSE.pdf, please refer to it for applicable conditions. In order to properly deal with its terms, please see file LICENSE_HOWTO.pdf.

The contact points for information about manufactured Products (see section 4.2) are listed in file PRODUCT.md.

Any modifications made by Licensees (see section 3.4.b) shall be recorded in file CHANGES.md.

The Documentation Location of the original project is https://github.com/SukkoPera/OpenFlops/.

Support the Project

Since the project is open you are free to get the PCBs made by your preferred manufacturer, however in case you want to support the development, you can order them from PCBWay through this link:

PCB from PCBWay

You get my gratitude and cheap, professionally-made and good quality PCBs, I get some credit that will help with this and other projects. You won't even have to worry about the various PCB options, it's all pre-configured for you!

Also, if you still have to register to that site, you can use this link to get some bonus initial credit (and yield me some more).

Again, if you want to use another manufacturer, feel free to, don't feel obligated :). But then you can buy me a coffee if you want:

Buy Me a Coffee at ko-fi.com

Get Help

If you need help or have questions, you can join the official Telegram group.

Thanks

  • H.M for publishing the original Gotek schematics
  • keirf for FlashFloppy
  • Brian Allan for suggesting some improvements for the Speaker circuit
  • Ray Bellis for suggesting adding pin headers for the USB port and speaker
  • Mario Babeu for suggesting to line up the orientation of LD1 and LD2
  • Patrick Kerkhof for sending me a lot of original Gotek housing for dimensional testing

openflops's People

Contributors

sukkopera avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openflops's Issues

Board is too long

The V1 board is slightly too long and won't fit in a standard Gotek case.

The solution is to make the board shorter by 0.6-1.0 mm (estimated "by eye") on the side under the USB connector.

bom list completed for cpc or rs

Does anyone have a bom list with all parts prefilled that can be uploaded to cpc/farnell or RS before i start filling mine in

To be considered for V2

  • SD slot
  • Pin header with SD/SPI signals (Monideth Pen, Hlide Fremen)
  • Input fuse (SMT chip fuse - Optional/Bridgeable - Keirf)
  • USB power switch (Optional/Bridgeable - Keirf)
  • Replace resistors with 4x1k smd resistor arrays to reduce number of elements and pcb space (Paweł Mandes)
  • Subsitute an open collector buffer, instead of the existing resistor / fet combination, that will save a bunch of components. I used a 74ls07, but with a small change to the ff code you could use 74ls06 too (Phill Harvey-Smith)

Thanks!

I just wanted to thanks for open-source this hardware and code.

I'm currently porting a old Nintendo Super Famicom (SNES) copier (Doctor SF 3) that holds a floppy drive to OpenFlops.

Will create content documenting the process soon. Thanks again!

Crashes my A2000

After putting the correct files on my 16GB USB thumb drive and booting from it, anytime I add ADF files to the entry points 001 extra and press F10 the system crashes. The only thing that works is so soft reboot the A2000. If I select an ADF and press F7 that works. So its only creating a custom list and pressing F10 to save and reboot?

I using the Simulant drive with FW 3.22.

This is the drive:
https://www.simulant.uk/shop/Floppy-Disk-Drive-USB-Emulator-OpenFlops-FlashFloppy-%20Gotek-upgrade?manufacturer_id=12

Idea: add 26pin connector version

hi!

this board would be awesome for my old 486 notebook :)

but it had an 26pin slim connector (like citizen w1d floppydrives)

i had no skills to change the gerberfiles. :(

Problems working on ThinkPad 755C

The original drive is a Teac FD-05HG. I can install OS/2 for instance, but if I try to use IBM's self extracting disk imaging tools (Sydex I believe) or rawrite2 for Linux, it fails and reports the sector isn't found.
I've made some progress perusing through github, but it seems utilities that access the drive in a certain way fail. Not sure if there are specific settings I need to make in ff.cfg or if there are modifications that need to be done to the board.

The ThinkPad GUI utility also reports no 3.5" drive is installed, even though I can still access it for most things and install things (just having problems with what I presume is software speaking directly to hardware).

How to connect OpenFlops for IBM 3174?

Hi

The FlashFloppy documentation has instructions to install a diode between two pins for operation in an IBM 3174 controller.
That documentation is focused on the original GoTek hardware.
Pin header layout and designations on the OpenFlops are different.
Can you please advise which pins on the OpenFlops are equivalent to this so I can install that diode correctly.

idea: internal solution together with floppy drive

I would like to install the emulator internally without removing the built-in floppy drive and being able to switch between the two. I have found someone who has done that using a modified floppy cable and a hardware switch for Amiga 1200: https://www.ikod.se/amiga-1200-gotek

Now, my suggestion is add another (optional) connector to the PCB where you can connect the original internal floppy drive that was replaced by OpenFlops and add the switching logic to the pcb. The switch could then be done via FlashFloppy (which would have to be extended, of course).

Connection schematics: mainboard -> (original unmodified floppy cable) -> openflops -> (unmodifed floppy cable) -> floppy drive

For a perfect internal usage some external PCB with a single connector to OpenFlops for buttons/rotary, display and usb port would enable people to use that setup without any modification to their case.

First PCB assembly

PCB ordered from PCBWAY from the link:
https://www.pcbway.com/project/shareproject/OpenFlops_V1.html

I got 1 piece of STM microcontroller.

I soldered by dragging the soldering iron over the legs.
I checked under the microscope.
I soldered Y1, C3, C5, BOOT0, TX, RX.
Programmed microprocessor - successful :)

In the next step I want to solder P7. Is it enough to see the inscription on OLED FlashFloppy?

HFE 1.76 MB Amiga not supported

HFE 1.76 MB Amiga images not working correctly even FF.cfg files with interface = amiga is included on pendrive.
Workbench still see drive as 880 KB DD and have r/w errors on it.
Same pendrive with original Gotek with F-F 3.23 firmware works fine.
Not checked at ADF HD files yet.

Tie PB2 low

PB2 (pin 28) is actually the BOOT1 pin. The Bootloader Document (AN2606) says that the STM32F105xx/107xx bootloader is activated by applying pattern1, which is Boot0(pin) = 1 and Boot1(pin) = 0.

The original Gotek leaves it floating, which might explain why some Goteks seem hard to program.

Probably the best thing would be to use a pull-down resistor and bring the pin to a header (or at least a test point), just in case.

Can STM32F106RBT6 used?

Hi,

the MPU "STM32F105RBT6" isn´t easy to get here, but the STM32F106RBT6 is good availible. Is it possible to use the STM32F106RBT6 instead of STM32F105RBT6?

Thanks!

SDA/SCL pins are swapped

Pin 29 is actually SCL and 30 is SDA, as per datasheet page 29, so H.M.'s schematics are wrong here.

Also note that SCL is the correct signal name, our silkscreen says SCK, so this shall be corrected too.

Strange issue on openflops hardware with FlashFloppy

I've built up several Openflops boards and flashed them with Flashfloppy 3.16 (and tried older versions). One out of 5 boards will successfully work with any Amstrad disk image files (DSK or HFE) whereas the others all return read errors from the OS when trying to use DSK files. I have compared the boards and can't see any differences. Waveforms on read, index etc all look very similar on the scope. These same "faulty" boards will work with HXC firmware. Has anyone else experienced this type of behaviour on the openflops hardware?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.