OlegMishin / GotekFlashFloppy

A Gotek based compact PCB for Amiga
GNU General Public License v3.0
41 stars 5 forks source link

GotekFlashFloppy

A Gotek based PCB for Amiga computer. Can be mounted externally and internally. Can be equipped with push buttons or with a rotary encoder. A 0.96" OLED display can be directly mounted using 4 spacers. I use 0.96 128x64 OLED (25.3x26.1mm overall dimensions) which is available in various online stores.

A 23-pin connector can be directly soldered to the pcb. Also, with an adapter pcb (23 to 34 pin) it can be mounted internally as "classic" Gotek pcb. Adapter's Gerbers located in "gff_int_adapter_rev0.zip" archive.

Building

The BOM provided to build the drive as an external. Drive select configured as Drive 1 (selectable via R6/R7/R10). The enclosure STL files also provided in "Cad\external case" location. U4/U5 and the buttons unmounted. For louder movement sound I would recommend to use a MOSFET (e.g. IRLML2803 etc) instead of the BJT due to lower voltage drop.

There is an issue observed with some MPUs. As in original Gotek, BOOT0 pin is floating, it could lead to its unstable state at power on (depends on power supply slew-rate. A 10k resistor between BOOT0 pin and GND solves the issue.

Firmware:

Please refer to FlashFloppy's repository for the latest one: https://github.com/keirf/FlashFloppy

MPU programming

Some early revisions of the MPU it can not be programmed via DFU. It is described in an application note AN2606(chapter 16.3.2): https://www.st.com/resource/en/application_note/cd00167594-stm32-microcontroller-system-memory-boot-mode-stmicroelectronics.pdf

As I have such early revision of the MPU, I needed to use SWD interface. Actually, DFU mode flashing was not considered in the design. Related jumpers will be added in the next pcb revision.

Hardware: ST-LINK V2 (Chinese clone). The MPU supplied from ST-LINK. It is enough for programming.

image

Software(Windows): STM32 ST-LINK Utility. Can be downloaded here: https://www.st.com/en/development-tools/stsw-link004.html

One important note to the ST-LINK flashing method. The following steps might be required if the MPU already programmed:

  1. Run the tool, select "Connect under RESET" in settings.
  2. Connect ST-Link (it provides 3.3V which is enough for the MPU programming).
  3. Short C9 (to activate RESET)
  4. Press "Connect" button,
  5. Release RESET
  6. Open "hex" file and program it pressing "Program Verify" button.

image

Other HW tools can be used for the MPU programming:

PCB:

Two layers, 1.6mm thikness. Optimized for JLCpcb.

3D render of the pcb(Just a nice picture. Some components must be unpopulated):

изображение

Adapter board(soldered side by side to the main pcb):

изображение

An example of internal mount with a 3D printed frame

Adapter's (frame) STL model is in CAD folder.

изображение

The display and rotary encoder mounted on top of the Amiga 500. Its model also in the "Cad" folder. изображение

As an external floppy

3D render.

изображение

The device in 3D printed enclosure. Connected to my Amiga 500 изображение