https://github.com/greatscottgadgets/apollo
microcontroller-based FPGA / JTAG programmer
https://github.com/greatscottgadgets/apollo
debugger fpga jtag programmer
Last synced: 7 months ago
JSON representation
microcontroller-based FPGA / JTAG programmer
- Host: GitHub
- URL: https://github.com/greatscottgadgets/apollo
- Owner: greatscottgadgets
- License: bsd-3-clause
- Created: 2020-07-13T02:51:07.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-12-10T16:56:54.000Z (over 1 year ago)
- Last Synced: 2025-08-28T04:51:16.583Z (7 months ago)
- Topics: debugger, fpga, jtag, programmer
- Language: C
- Homepage:
- Size: 501 KB
- Stars: 77
- Watchers: 9
- Forks: 32
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Apollo FPGA Programmer / Debugger
Apollo is the on-board debugger and programmer on [Cynthion](https://greatscottgadgets.com/cynthion/). It is used to load gateware over USB onto Cynthion's FPGA. Alternatively it may be used as an on-board or external debugger for certain other FPGA platforms.
Apollo consists of two main parts: firmware for the on-board debug microcontroller and Python-based software for the host computer.
## Installing Host Software
If you have a Cynthion, Apollo host software is installed automatically as a dependency when you [install Cynthion software](https://cynthion.readthedocs.io/en/latest/getting_started.html#cynthion-host-software-installation).
To explicitly install the apollo-fpga Python module and the `apollo` command-line tool or to upgrade them to the latest version run:
```
pip install --upgrade apollo-fpga
```
## Building and Installing Firmware
To upgrade Apollo firmware on a Cynthion it is typically not necessary to compile the firmware yourself. Instead follow [Upgrading Cynthion Device Firmware](https://cynthion.readthedocs.io/en/latest/getting_started.html#updating-cynthion-microcontroller-firmware-and-fpga-configuration-flash).
To compile and install onto Cynthion run:
```
$ cd apollo/firmware
$ make APOLLO_BOARD=cynthion get-deps dfu
```
This will download dependencies, compile the firmware, and install it onto Cynthion with [pyfwup](https://github.com/greatscottgadgets/pyfwup) and [Saturn-V](https://github.com/greatscottgadgets/saturn-v).
Alternatively you can use variables to specify a different board or a fixed hardware revision:
```
$ cd apollo/firmware
$ make APOLLO_BOARD=cynthion BOARD_REVISION_MAJOR=1 BOARD_REVISION_MINOR=4 get-deps dfu
```
A specified revision will override automatic hardware revision detection which is supported on Cynthion r0.6 and above. You must specify the revision to compile firmware for a Cynthion older than r0.6.
Once installation is complete, LED A should activate, indicating that Apollo is running.