{"id":22724481,"url":"https://github.com/brilliantlabsar/frame-codebase","last_synced_at":"2025-05-16T06:06:30.526Z","repository":{"id":223884704,"uuid":"679688599","full_name":"brilliantlabsAR/frame-codebase","owner":"brilliantlabsAR","description":"The complete codebase for Frame","archived":false,"fork":false,"pushed_at":"2025-03-21T10:35:19.000Z","size":44113,"stargazers_count":331,"open_issues_count":30,"forks_count":68,"subscribers_count":14,"default_branch":"main","last_synced_at":"2025-04-29T03:41:14.597Z","etag":null,"topics":["ai","ar","crosslink-nx","fpga","lattice-fpga","lua","nordic-semiconductor","nrf52","nrf52840"],"latest_commit_sha":null,"homepage":"https://www.brilliant.xyz","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brilliantlabsAR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-17T11:54:10.000Z","updated_at":"2025-04-27T05:13:25.000Z","dependencies_parsed_at":"2024-06-02T22:48:49.612Z","dependency_job_id":"04507e28-3621-41e6-94b2-4234b0717ef2","html_url":"https://github.com/brilliantlabsAR/frame-codebase","commit_stats":null,"previous_names":["brilliantlabsar/frame-codebase"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fframe-codebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fframe-codebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fframe-codebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brilliantlabsAR%2Fframe-codebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brilliantlabsAR","download_url":"https://codeload.github.com/brilliantlabsAR/frame-codebase/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478190,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ar","crosslink-nx","fpga","lattice-fpga","lua","nordic-semiconductor","nrf52","nrf52840"],"created_at":"2024-12-10T15:06:51.329Z","updated_at":"2025-05-16T06:06:25.486Z","avatar_url":"https://github.com/brilliantlabsAR.png","language":"C","readme":"# Frame Firmware \u0026 RTL Codebase\n\nWelcome to the complete codebase of the Frame hardware. For regular usage, check out the docs [here](https://docs.brilliant.xyz).\n\n## System architecture\n\nThe codebase is split into three sections. The **nRF52 Application**, the **nRF52 Bootloader**, and the **FPGA RTL**. \n\nThe nRF52 is designed to handle the overall system operation. It runs Lua, as well as handle Bluetooth networking, AI tasks and power management. The FPGA meanwhile, simply handles acceleration of the graphics and camera.\n\n![Frame system architecture diagram](docs/diagrams/frame-system-architecture.drawio.png)\n\n## Getting started with nRF52 firmware development\n\n1. Ensure you have the [ARM GCC Toolchain](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) installed.\n\n1. Ensure you have the [nRF Command Line Tools](https://www.nordicsemi.com/Products/Development-tools/nRF-Command-Line-Tools) installed.\n\n1. Ensure you have [nRF Util](https://www.nordicsemi.com/Products/Development-tools/nRF-Util) installed, along with the `device` and `nrf5sdk-tools` subcommands.\n\n    ```sh\n    ./nrfutil install device\n    ./nrfutil install nrf5sdk-tools\n    ```\n\n1. Clone this repository and initialize any submodules:\n\n    ```sh\n    git clone https://github.com/brilliantlabsAR/frame-codebase.git\n    \n    cd frame-codebase\n\n    git submodule update --init\n    ```\n\n1. You should now be able to build and flash the project to an [nRF52840 DK](https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK) by calling the following commands from the `frame-codebase` folder.\n\n    ```sh\n    make release\n    make erase-jlink # Unlocks the flash protection if needed\n    make flash-jlink\n    ```\n\n### Debugging\n\n1. Open the project in [VSCode](https://code.visualstudio.com).\n\n    There are some build tasks already configured within `.vscode/tasks.json`. Access them by pressing `Ctrl-Shift-P` (`Cmd-Shift-P` on MacOS) → `Tasks: Run Task`.\n\n    Try running the `Build` task. The project should build normally.\n\n    You many need to unlock the device by using the `Erase` task before programming or debugging.\n\n1. To enable IntelliSense, be sure to select the correct compiler from within VSCode. `Ctrl-Shift-P` (`Cmd-Shift-P` on MacOS) → `C/C++: Select IntelliSense Configuration` → `Use arm-none-eabi-gcc`.\n\n1. Install the [Cortex-Debug](https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug) extension for VSCode in order to enable debugging.\n\n1. A debugging launch is already configured within `.vscode/launch.json`. Run the `Application (J-Link)` launch configuration from the `Run and Debug` panel, or press `F5`. The project will automatically build and flash before launching.\n\n1. To monitor the logs, run the task `RTT Console (J-Link)` and ensure the `Application (J-Link)` launch configuration is running.\n\n1. To debug using [Black Magic Probes](https://black-magic.org/index.html), follow the instructions [here](/production/blackmagic/README.md).\n\n## Getting started with FPGA development\n\nThe complete FPGA architecture is described in the documentation [here](docs/fpga-architecture.md).\n\nThe FPGA RTL is prebuilt and included in `fpga_application.h` for convenience. If you wish to modify the FPGA RTL, follow the instructions [here](docs/fpga-toolchain-setup.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrilliantlabsar%2Fframe-codebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrilliantlabsar%2Fframe-codebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrilliantlabsar%2Fframe-codebase/lists"}