Update Firmware Setup authored by Cole Hunt's avatar Cole Hunt
# Description # Description
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 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
![firmware-architecture.drawio.svg](uploads/bc1d6deaf90eab1d2a2b69101a66f7d8/firmware-architecture.drawio.svg) ![firmware-architecture.drawio.svg](uploads/bc1d6deaf90eab1d2a2b69101a66f7d8/firmware-architecture.drawio.svg)
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. 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 # Prerequisites
...@@ -33,7 +32,7 @@ $ mkdir install-lnx ...@@ -33,7 +32,7 @@ $ mkdir install-lnx
$ tar x -C install-lnx -f <filename>.tar.xz $ tar x -C install-lnx -f <filename>.tar.xz
$ PATH=`pwd`/install-lnx/aarch64/bin:$PATH $ PATH=`pwd`/install-lnx/aarch64/bin:$PATH
``` ```
- Unless a setup script is created or an edit in made in your `.bashrc` you will need to add the cross-compiler back to your `$PATH` on every OS boot - Unless a setup script is created or an edit is made in your `.bashrc` you will need to add the cross-compiler back to your `$PATH` on every OS boot
## U-Boot Compilation ## U-Boot Compilation
The following instructions will describe how to use the new cross-compiler to compile u-boot for the Raspberry Pi Zero 2W. The following instructions will describe how to use the new cross-compiler to compile u-boot for the Raspberry Pi Zero 2W.
...@@ -62,4 +61,5 @@ $ sudo cp ./u-boot.bin /path/to/sd_boot_partition/kernel8.img ...@@ -62,4 +61,5 @@ $ sudo cp ./u-boot.bin /path/to/sd_boot_partition/kernel8.img
Example: `$ sudo cp ./u-boot.bin /media/<user/system-boot/kernel8.img` Example: `$ sudo cp ./u-boot.bin /media/<user/system-boot/kernel8.img`
- The new file must be named `kernel8.img` - The new file must be named `kernel8.img`
2. Now you can place the sd-card back in the Raspberry Pi and Attempt to Boot 2. Now you can place the sd-card back in the Raspberry Pi and Attempt to Boot
3. If the u-boot install was successful you should see this image in the top right and be prompted to `Press any key to disable auto boot` ![image](uploads/7989dd3dda1b5e1ebcaceb2c11c4287f/image.png) 3. If u-boot install was successful you should see this image in the top right and be prompted to `Press any key to disable auto boot`
\ No newline at end of file ![image](uploads/7989dd3dda1b5e1ebcaceb2c11c4287f/image.png)
\ No newline at end of file