The Firmware Setup for the Raspberry Pi Zero 2W is a dual operation system with a bare-metal program running alongside an Ubuntu OS. The intent of this is to use a Linux environment to handle network connectivity and packet sending while still allowing the crazyflie firmware to run as a FreeRTOS program (as it natively does on a crazyflie). The system architecture is designed to operate as follows
The Ubuntu portion of the system runs on 3 cores from the Pi Zero and the bare-metal program runs on one. They share data through a shared memory space which allows information like setpoints, parameter updates, etc to be sent from the ground station to the drone firmware.
# Prerequisites
- The current system is set up for Ubuntu Server 22.10 (64-bit) on the Raspberry Pi Zero 2W[OS Install Info](https://git.ece.iastate.edu/danc/MicroCART/-/wikis/Pi-Zero-Setup-Guide#os-install)
- The current system is set up for Ubuntu Server 22.10 (64-bit) on the Raspberry Pi Zero 2W[OS Install Info](https://git.ece.iastate.edu/danc/MicroCART/-/wikis/Pi-Zero-Setup-Guide#os-install)
- Network Connection and SSH ability to the Raspberry Pi through the IASTATE network [Network Connection Info](https://git.ece.iastate.edu/danc/MicroCART/-/wikis/Pi-Zero-Setup-Guide#register-on-iastate-network)