···4455## Building
6677+### Using the Makefile (Recommended)
88+99+The project includes a Makefile that simplifies the build process:
1010+7111. Make sure you have the Pico SDK set up (automatically handled by the Nix flake)
88-2. Configure the build:
1212+2. Build the firmware:
1313+ ```
1414+ make
1515+ ```
1616+3. The output files will be in the `build` directory
1717+1818+### Manual Build
1919+2020+If you prefer to use CMake directly:
2121+2222+1. Configure the build:
923 ```
1024 cmake -B build -S .
1125 ```
1212-3. Build the firmware:
2626+2. Build the firmware:
1327 ```
1428 cmake --build build
1529 ```
1616-4. The output files will be in the `build` directory:
3030+3. The output files will be in the `build` directory:
1731 - `daedalus_firmware.uf2`: UF2 file for drag-and-drop programming
1832 - `daedalus_firmware.elf`: ELF file for debugging
1933 - `daedalus_firmware.hex`: HEX file for programming with external tools
20342135## Flashing
22363737+### Using the Makefile (Recommended)
3838+3939+Flash the firmware to the RP2350 board:
4040+4141+```
4242+make flash
4343+```
4444+4545+If the board is already running firmware and needs to be forced into programming mode:
4646+4747+```
4848+make FORCE_FLASH=1 flash
4949+```
5050+5151+### Manual Flashing
5252+2353Connect the RP2350 board in bootloader mode (hold BOOTSEL while connecting USB) and copy the UF2 file:
24542555```
···30603161```
3262picotool load -x build/daedalus_firmware.uf2
3333-```6363+```
6464+6565+## Debugging
6666+6767+Generate disassembly for debugging:
6868+6969+```
7070+make disasm
7171+```
7272+7373+## Development
7474+7575+The firmware uses both cores of the RP2040:
7676+- Core 0: Handles the main application logic
7777+- Core 1: Manages the LED matrix display
7878+7979+The LED matrix is organized in a 4x6 grid, with rows and columns controlled by GPIO pins.