blog:amiga_minimig_index

This is an old revision of the document!


From Wikipedia:

Minimig (short for Mini Amiga) is an open source re-implementation of an Amiga 500 using a field-programmable gate array (FPGA).

Minimig started around January 2005 as a proof of concept by Dutch electrical engineer Dennis van Weeren. He intended Minimig as the answer to the ongoing discussions within the Amiga community on implementing the
Amiga custom chipset using an FPGA. The project's source code and schematics were released under version 3 of the GNU General Public Licence on 25 July 2007.

I bought a Minimig v1.1 board around 2008 with the intention of using it as the basis of a portable Amiga 500, but it never really progressed beyond a basic (messy!) prototype. As such it then went into a box of parts, put in the attic, and forgotten about for many years.

Unfortunately, in 2024, the FPGA Amiga scene has moved on massively, and there is not a great deal of documentation or software to be found very easily for these original boards. This problem is further exacerbated by the fact that almost none of the released firmware or core files have been distributed with changes or readme files. So in many cases you are left guessing what the differences are.


PIC vs ARM controller

The original Minimig 1.0 and 1.1 boards had an actual Motorola 68SEC000 processor, the Xilinx Spartan FPGA and a PIC controller. The PIC was used to handle IO devices like the (emulated) floppies and hard disks, but it was soon found to be a limiting factor.

Later, an add-on board containing an ARM microcontroller was added in place of the PIC:

Minimig ARM controller

The ARM controller increased the number of emulated floppy devices as well as dramatically speeding up the emulated hard disk. Most newer models of the Minimig since 1.1 appear to have the ARM controller integrated, rather than using a PIC.

Therefore, there are two branches of firmware for the microcontroller; PIC and ARM. In the early days the main FPGA core was also tightly coupled to the firmware used for the microcontroller - you couldn't, for example, use an FPGA core that expected the PIC microcontroller with the ARM board, or vice-versa, unless the core was expecting it.

Unfortunately the shut down of the Minimig.net forums seems to have resulted in a lot of loss of information, so it is now really unclear what requirements the FPGA firmwares have. I have tried to collect the available core and ARM firmware files that are applicable to the original 1.1 boards here, in one place. In the absence of any historical information, I am assuming that in most cases, newer is better.


This is the code which is written to the FPGA on boot, and sets up the Amiga hardware.

Filename Date Source Notes
fw140501.zip 16th June, 2021 https://www.minimig.ca/index.php/software/ Listed as the latest available core in the “Minimig Software for Super PIC 18F26K20 and ARM controller” section.
minimig-rel4.zip 14th February, 2016 https://somuch.guru/minimig/original-minimig/ Based on FSB150520 + boing4000 fixes + rkrajnc fixes.
fyq100818.zip 19th August, 2010 https://www.minimig.ca/index.php/software/ To be used with ARM firmware AYQ100818.zip.
fyq091224.zip 24th December, 2009 https://www.minimig.ca/index.php/software/ To be used with ARM firmware AYQ091224.zip.
yq090911.zip 13th September, 2009 https://www.minimig.ca/index.php/software/ Contains matching ARM and FPGA firmware.

FPGA core files generally come as a 'minimig1.bin' file, and are simply copied to the root of the SD card. Most later ARM firmware allows browsing the SD card for alternative FPGA cores via the overlay menu, so it can be useful to install additional cores that you don't want to load as default, and have then selected from the menu (e.g. for compatibility with a particular game/application). The core file named 'minimig1.bin' will always be loaded by default at power-on.

This is the code which lets the ARM microcontroller emulate floppy and hard disks and provides the overlay menu which appears when pressing F12.

Filename Date Source Notes
arm_asb230428.zip 28th May, 2023 https://www.minimig.ca/index.php/software/ Listed against the “1.1 to 1.8x Minimig board”. Described as “New ARM firmware”. Works with my v1.0 ARM controller and v1.1 Minimig board.
asb140501.zip 16th June, 2021 https://www.minimig.ca/index.php/software/ Listed against the software section titled “Minimig Software for Super PIC 18F26K20 and ARM controller” boards.
ayq100818.zip 19th August, 2010 https://www.minimig.ca/index.php/software/ To be used with FPGA firmware FYQ100818.zip.
ayq091224.zip 24th December, 2009 https://www.minimig.ca/index.php/software/ To be used with FPGA firmware FYQ091224.zip.
yq090911.zip 13th September, 2009 https://www.minimig.ca/index.php/software/ Contains matching ARM and FPGA firmware.

ARM firmware is either written to the controller via the USB programming port, or, when the controller is already programmed, can be updated via the overlay menu itself (generally by naming the file 'firmware.upg' in the root of the SD card).

The microchip.com in-system programming tool sam-ba is used to initially write to a blank ARM controller. The original firmware installation guide is listed below for reference:

  • blog/amiga_minimig_index.1710780093.txt.gz
  • Last modified: 2024/03/18 16:41
  • by john