The MiSTeryNano FPGA Companion implements support functions for FPGA based retro computing projects like MiSTeryNano project. While the FPGA typically implements the hardware of the retro machine itself the Companion uses a microcontroller to add support for modern peripherals like USB keyboard, mice and SD cards. It also implements an on-screen-display menu to allow the user to configure the retro machine.
The FPGA Companion replaces the MiSTeryNano firmware that was formerly part of the MiSTeryNano project. It is also used by the NanoMig, the C64Nano, the VIC20Nano and the A2600Nano.
While the MiSTeryNano was initially designed with a BL616 MCU as the support MCU the FPGA Companion introduces more flexibility and allows to choose from different MCUs to act as the support MCU. From the FPGAs perspective these behave identical although not all MCUs may support all functions to the same extent and e.g. the ESP32 is rather limited when it comes to USB support.
Currently the FPGA Companion can be used with the following MCUs:
- M0S/BL616, see the build instuctions, and
- Raspberry Pi Pico/RP2040, see the build instructions
- ESP32 S2/S3, see the build instructions
The inital version of MiSTeryNano relied on the BL616 as a support MCU. Some shortcomings of that platform caused the code to be ported to other MCUs which then may have their own advantages and disadvantages.
- Pros
- Very powerful Risc-V CPU
- USB 2.0 highspeed host support
- WiFi 6 support
- Bluetooth 5.2 support
- Cons
- Limited SDK support
- USB needs manual update of the CherryUSB stack
- No classic Bluetooth support
- Limited WiFi support
- Limited SDK support
- Pros
- Powerful and well-supported SDK
- Widely available and cheap
- Fullspeed USB host support
- Cons
- No built-in bluetooth and WiFi support
- Only available via seperate modules (e.g. on Pico(W))
- No built-in bluetooth and WiFi support
- Pros
- Powerful and well-supported SDK
- Widely available and cheap
- Built-in Bluetooth and WiFi
- Cons
- Very limited USB host support
- Only one device (no hub)
- USB stack complex to use
- Very limited USB host support