Repositories¶
This page says what each fpgas.online repository is responsible for, what it publishes, and where it runs. It is for someone looking for the repository that holds a thing. How to build and test a repository is in its own README. The repositories are in the fpgas-online organisation unless the name says otherwise.
In each table, Repository links the repository and Responsible for says what it holds. Publishes is what its CI makes, and Runs on is where that ends up. How the packages reach a host is on Packages.
The site: gateway and web tier¶
Repository |
Responsible for |
Publishes |
Runs on |
|---|---|---|---|
Ansible playbooks, inventory and roles for a whole site: the gateway (DHCP, TFTP, NFS, nginx, the web application, camera relay, web terminal) and the Pi NFS root, which is built on the gateway rather than configured on running Pis. Its CI boots an emulated fleet against a real gateway build. See The gateway host and Netboot |
nothing; it deploys |
the operator’s machine, against the gateway |
|
The Django web application: the board list, each board’s page, bitstream upload, the web terminal, power buttons, and the Tiny Tapeout site. See The web application |
no package; |
the gateway |
|
Switching PoE ports off and on over SNMP: a Python library, the Django views behind the power buttons, and command-line tools |
no package; |
the gateway |
|
The gateway’s board-access service: board inventory, status, power, serial and events over HTTP, so a web front end never touches the Pi network, the switch credentials or redis |
no package yet |
written to run on the gateway |
|
Browser tests that use the live sites as a visitor does: open board pages, press the buttons, type in the web terminal, watch the camera, upload a bitstream. Needs no secrets |
nothing |
CI, or any machine with a browser |
|
Rebooting NFS-root machines whose root changed underneath them, one at a time and only once the update is finished |
Debian packages |
the gateway (server) and the Pis (client) |
|
The landing page at https://fpgas.online. Static HTML, no build step |
GitHub Pages |
GitHub |
|
A fork of sshpiper, an ssh reverse proxy, kept for reaching a board by its own name (infra issue #191) |
nothing |
not deployed |
|
A public HTTPS API for leasing a board, uploading, running commands and reading the camera. Design only: there is no code yet |
nothing yet |
not deployed |
On the Pi hosts¶
Repository |
Responsible for |
Publishes |
Runs on |
|---|---|---|---|
What makes a bare Pi an fpgas.online host: shell environment, board detection, status reporting, network interface naming. See The Pi hosts |
Debian package |
every Pi |
|
Capturing the Pi’s camera and streaming it to the gateway, so a visitor can watch the board |
Debian package |
every Pi with a camera |
|
A maintained patch series on openFPGALoader and OpenOCD for what is not upstream yet (JTAG through the Pi 5’s RP1, NeTV2, the Tiny Tapeout FPGA board), built as packages and static binaries |
its own signed apt repository, separate from |
Pis that program an FPGA board |
|
The library and drivers for fast JTAG through the Raspberry Pi 5’s RP1 chip. Development only: installable builds come from |
nothing |
Pi 5 hosts, through the tools above |
|
Identifying a Pi and what is attached to it (model, serial, MAC addresses, HAT, power source), and printing the labels that go on the hardware |
PyPI and Debian packages |
a Pi, or an operator’s machine over ssh |
FPGA designs and verification¶
Repository |
Responsible for |
Publishes |
Runs on |
|---|---|---|---|
The test designs for every board and |
Debian packages (the check and its bitstreams) |
CI builds; the Pis run the check |
|
Sandboxed, one-job-each GitHub Actions runners with Vivado, for the designs the open toolchains cannot build. Not deployed: the repository holds no code |
nothing yet |
a KVM host |
|
A mirror of migen that builds it as the Debian package |
signed apt repository at https://fpgas.online/migen/ |
CI |
Tiny Tapeout¶
Repository |
Responsible for |
Publishes |
Runs on |
|---|---|---|---|
The daemon on the Pi that owns a Tiny Tapeout demo board’s USB serial port and shares it with browsers over a WebSocket. See Tiny Tapeout |
Debian package |
Pis with a Tiny Tapeout board |
|
A fork of the Tiny Tapeout Commander that adds a WebSocket transport and an embeddable build. Its default branch is |
the bundle the site embeds |
visitors’ browsers |
|
The curated demo designs for the FPGA emulation boards, built in CI, with the index the board page’s picker reads |
Debian package |
Pis with a Tiny Tapeout FPGA board |
|
The adapter board that brings a demo board’s I/O to the Pi’s ribbon cable while leaving the Pmods usable |
board design files |
hardware |
Older repositories¶
These predate the Ansible-built NFS root and are kept for reference.
Repository |
What it was for |
|---|---|
Scripts that turned a Raspberry Pi OS card image into an NFS root by hand. |
|
Stand-alone diagnostic scripts, mostly for reading DHCP traffic and logs |