Firmware

ARC’s firmware is divided into two core components, each responsible for critical hardware features:

1. Keyboard Firmware

  • Platform: Runs on the Waveshare RP2040 Pico Mini microcontroller
  • Customization:
    • The keyboard firmware is written in CircuitPython
    • Users can easily modify key mappings, layers, macros, and special functions by editing the main script (code.py) directly on the device (shows up as a USB drive when connected to a PC)

For a full list, see the CircuitPython HID Keycode Documentation.

2. Display Driver

  • Driver: fbcp-ili9341 (Framebuffer Copy for ILI9341 displays)
  • Role:
    • Bridges the Raspberry Pi’s main framebuffer to the 3.5" SPI TFT display used by ARC
    • Ensures smooth graphics, touch input support, and compatibility with the custom launcher
  • Configuration:
    • Driver is managed as a systemd service, auto-starting on boot
    • Supports screen rotation, custom resolutions, and performance tweaks

Together, these firmware components enable a fully custom, reprogrammable user interface and seamless hardware integration for ARC.