Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/harbaum/fpga-companion
Microcontroller firmware for retro FPGA support MCUs
https://github.com/harbaum/fpga-companion
fpga minimig retrocomputing
Last synced: about 2 months ago
JSON representation
Microcontroller firmware for retro FPGA support MCUs
- Host: GitHub
- URL: https://github.com/harbaum/fpga-companion
- Owner: harbaum
- License: apache-2.0
- Created: 2024-06-20T06:54:01.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-08T21:30:20.000Z (about 2 months ago)
- Last Synced: 2024-11-08T22:26:58.300Z (about 2 months ago)
- Topics: fpga, minimig, retrocomputing
- Language: C
- Homepage:
- Size: 3.07 MB
- Stars: 23
- Watchers: 6
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MiSTeryNano FPGA Companion
The MiSTeryNano FPGA Companion implements support functions for FPGA
based retro computing projects like [MiSTeryNano
project](https://github.com/harbaum/MiSTeryNano). 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](https://github.com/harbaum/MiSTeryNano). It is also
used by the [NanoMig](https://github.com/harbaum/nanomig), the
[C64Nano](https://github.com/vossstef/tang_nano_20k_c64), the
[VIC20Nano](https://github.com/vossstef/VIC20Nano) and the
[A2600Nano](https://github.com/vossstef/A2600Nano).## Supported MCUs
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](https://wiki.sipeed.com/hardware/en/maixzero/m0s/m0s.html), see the [build instuctions](src/bl616), and
- [Raspberry Pi Pico/RP2040](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html), see the [build instructions](src/rp2040)
- [ESP32 S2/S3](https://www.espressif.com/en/products/socs/esp32-s2), see the [build instructions](src/esp32)## Features and disadvantages of the different MCUs
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.### BL616
- 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### RP2040
- 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))### ESP32-S2/S3
- 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