NanoMig
September 26, 2026 ยท View on GitHub
NanoMig is a port of the Minimig Commodore Amiga FPGA implementation to the Tang Nano 20K, Tang Primer 25K, Tang Mega 138K Pro and Tang Console with Mega 60k / 138k module FPGA development boards.

This is based on the MiSTeryNano project and also relies on a FPGA companion to be connected to the FPGA board for USB support and on-screen-display control.
This is still a work in progress. The current version is based on the MiSTer Minimig AGA code and runs many Amiga games and demos.
Current state:
- Minimig based on MiSTer Minimig AGA
- Amiga 500, 1000 and Amiga 1200 modes
- Kick ROM stored in flash ROM
- 2MB chip, 4MB fast and 1.5MB slow RAM on Tang Nano
- 2MB chip, 24MB fast and 1.5MB slow RAM on ICEPI-ZERO
- Accelerated 68020 support + CPU cache
- OCS, ECS, AGA chipset
- ROM loader (Kickstart 1.3 / 3.1 / 3.2 / DiagRom)
- Up to four virtual floppy drives
- Floppy disk write support
- HDMI video and audio, PAL and NTSC
- Keyboard and mouse via USB
- Joysticks via USB or DB9 ports
- Up to two virtual IDE hard disks, read and write support
- Runs on Tang Nano 20k, Primer 25K, Mega 138K Pro and [Tang Console with Mega 60k / 138k module],(https://wiki.sipeed.com/hardware/en/tang/tang-console/mega-console.html), ICEPI-ZERO (25K) and ICEPI-ZERO XL (45K)
- Fully simulated
Planned features:
- Drive Sounds for FDD & HDD (hardware addon / buzzer)
- RTG - Retargetable Graphics
- Toccata - Sound Card
- WIFI support
Videos
These youtube shorts mainly document the progress:
- NanoMig #14: Pinball Fantasies AGA with NanoMig on IcePi-Zero
- NanoMig #13: Custom Gowin GW5A-25 board running Amiga sysinfo
- NanoMig #12: Changing kickstart via menu
More ...
- NanoMig #11: Tiny FPGA, big screen
- NanoMig #10: World of Commodore Amiga Demo on Tang Primer 25k
- NanoMig #9: Amiga speedball 2 on Tang Mega 138k Pro
- NanoMig #8: Booting from virtual Harddisk
- NanoMig #7: Tiniest Amiga running Gods
- NanoMig #6: First signs of life with the 68ec020
- NanoMig #5: Cheap FPGA Amiga finally runs Planet Rocklobster Demo
- NanoMig #4: Running Amiga Pro tracker on the Tang Nano 20k
- NanoMig #3: Booting workbench for the first time on Tang Nano 20k
- NanoMig #2: USB keyboard and audio for the FPGA Amiga
- NanoMig #1: Amiga DiagROM booting on Tang Nano 20k
What's needed?
The necessary binaries can be found in the project releases.
nanomig.fsneeds to be flashed to the FPGA's flash memoryopenFPGALoader -f nanomig.fs- Currently supported are Tang Nano 20k with HDMI (
nanomig.fs), Tang Nano 20k with RGB LCD (nanomig_lcd.fs), Tang Primer 25k (nanomig_tp25k.fs), Tang Mega 138k Pro (nanomig_tm128k.fs), Tang Console 60k (nanomig_tc60k.fs) and Tang Console 138k (nanomig_tc128k_bl616.fs)
- On Nano 20k, Primer 25k and Console 60K 256kByte Kickstart 1.3
kick13.romneeds to be flashed to offset 0x400000 and 0x440000 (identical file). On 138k boards use addresses 0x600000 and 0x640000 instead.
Note: 512kB Kickstart 1.3 ROMs at offset 0x400000 respectively 0x600000 for 138k.openFPGALoader --external-flash -o 0x400000 kick13.romopenFPGALoader --external-flash -o 0x440000 kick13.rom
See here for checksums of known working Kickstart roms.
- For IDE HDD support 512kB Kickstart 3.1
kick31.romneeds to be flashed at offset 0x400000 (138k: 0x600000) only.openFPGALoader --external-flash -o 0x400000 kick31.rom
- The latest FPGA Companion firmware needs to be flashed to the support MCU
- Currenly supported are M0S Dock (BL616), Raspberry Pi Pico (RP2040), ESP32-S2/S3
and TN20k, Console 60k/138k, Primer25k, Mega138k Pro integrated onboard BL616 MPU
- Currenly supported are M0S Dock (BL616), Raspberry Pi Pico (RP2040), ESP32-S2/S3
- A default ADF disk image named
df0.adfshould be placed on SD card (e.g. workbench 1.3) - For the SD card to work all components incl. the support MCU have to work properly
- For preparation of HDF images the HST-Imager works best. HST-Imager
- Professional Filesystem 3 (PFS3) is recommended for HDDs. PFS3
- Use ADF-Opus to create and modify ADF images under Windows ADFOpus2025
- With Disk Flashback you can mount ADF's & HDF's under Windows Disk Flashback
ICEPI-ZERO
Windows: Download and install OSS CAD SUITE (download) and Zadig (download)
1.) Plug your FPGA board into your computer via USB.
Open Zadig and select Options -> List All Devices in Zadig.
Choose your FPGA cable or interface from the drop-down menu.
Change the target driver to WinUSB and click Replace Driver (or Install Driver).
2.) flash NanoMig to ICEPI
openFPGALoader -c ft231X --pins=7:3:5:6 -f nanomig_impl.bit
3.) flash Kickstart
openFPGALoader -c ft231X --pins=7:3:5:6 -f -o 0x400000 kick31.rom
4.) connect ICEPI & Carrier
5.) push button on Carrier and connect it via USB to your Computer to flash FPGA-Companion (download)
Rigid Disk Block Info
Please make sure to use RDB (Rigid Disk Block) images with a Start Offset 0.
If unallocated space is present before the RDB, the HDF image won't be recognized.
Credits
The NanoMig contains code written by:
Till Harbaum
Alastair M. Robinson
Mateusz Nalewajski
Tobias Gubener
Rok Krajnc
Dennis van Weeren
Special thanks to Till Harbaum (harbaum) for the invention of the NanoMig!
Many thanks to Alastair M. Robinson (robinsonb5) for his contributions to the NanoMig, in particular Fastram and 68020 cpu!
Many thanks to Mateusz Nalewajski (m1nl) and djnice (djnice) for the implementation of the AGA chipset with Embedded Block Ram and many more contributions!
Build setting (Tang Nano 20K only!)
The core needs to be able to react on bl616 jtagsel Signal (all boards except tn20k).
Only for the TN20K: Use JTAG as regular IO must be unselected in Gowin EDA Configuration!
LED UI
| LED | function | TN20K | TP25K | TM60K | TM138K Pro | Console60K/138k |
|---|---|---|---|---|---|---|
| 0 | POWER | x | x | x | x | x |
| 1 | F.DISK | x | x | x | x | x |
| 2 | H.DISK | x | - | - | x | - |
| 3 | KICK READY | x | - | - | x | - |
| 4 | SD-READ | x | - | - | x | - |
| 5 | SD-WRITE | x | - | - | x | - |
Amiga specific key mappings
| Amiga key | NanoMig key |
|---|---|
| Left Amiga | Left meta (Windows) key |
| Right Amiga | Right meta / Page Down |
| Help | End / Insert |