diff --git a/crazyflie-firmware/README.md b/crazyflie-firmware/README.md
index d91a80975fc658e53ad4c20bb981c4f87a773b54..d7c53a21f3993e3be9e4599114179418a27abb91 100644
--- a/crazyflie-firmware/README.md
+++ b/crazyflie-firmware/README.md
@@ -4,3 +4,29 @@ https://github.com/bitcraze/crazyflie-firmware
 And the hash from the exact commit we pulled from:
 
 f4d21213d7ce37d7ed7338fad0f9a94a96cec191
+
+To apply the patch, just write the following commands:
+
+`git clone https://github.com/bitcraze/crazyflie-firmware.git`<br>
+`cd crazyflie-firmware`<br>
+`git submodule init && git submodule update`<br>
+`git checkout f4d21213d7ce37d7ed7338fad0f9a94a96cec191`<br>
+`git apply
+<folder_to_D-FaLL-System_repository/crazyflie_firmware/firmware_modifications.patch>`<br>
+
+Now the repository is ready to compile. To do it, first make sure that you have
+installed the toolchain. To install it:
+`sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa`<br>
+`sudo apt-get update`<br>
+`sudo apt-get install libnewlib-arm-none-eabi`<br>
+
+Then, in the `crazyflie-firmware` folder where you applied the patch, do:<br>
+`make PLATFORM=CF2`
+
+If everything is successful, you will see something like this:<br>
+
+<img src="./pics/success_building.png" style="width: 400px;"/> <br><br>
+
+Now the binary file cf2.bin has been created, and can be directly uploaded to
+the crazyflie
+
diff --git a/pps_wiki/setup.md b/pps_wiki/setup.md
index 229264c5ba9726db4de2b5bd73961f80638a48b5..19bba96ef28bd287e4c4362a1ee308ccc6da62f1 100644
--- a/pps_wiki/setup.md
+++ b/pps_wiki/setup.md
@@ -44,7 +44,21 @@ Click on *SET ORIGIN* and you're set.<br>
 ## Firmware and channel
 The firmware of a crazyflie is updated by the teacher. Additionally, the teacher can set the channel of the crazyflies to prevent interference.<br>
 ### Firmware
-See https://wiki.bitcraze.io/doc:crazyflie:client:pycfclient:index#firmware_upgrade for instructions on changing the firmware with the Crazyflie client. If you have installed it properly as described in the installation section, it can be started in a terminal by typing `cfclient`.
+See
+https://wiki.bitcraze.io/doc:crazyflie:client:pycfclient:index#firmware_upgrade
+for instructions on changing the firmware with the Crazyflie client. If you have
+installed it properly as described in the installation section, it can be
+started in a terminal by typing `cfclient`.<br><br>
+Basically, the steps to flash the crazyflie are:<br><br>
+1. Start `cfclient`<br>
+2. Go to Connect->Bootloader<br>
+3. Press the ON/OFF button in the Crazyflie for 3 seconds to enter bootloader
+   mode (two blue leds will start blinking)<br>
+4. In cfclient, press `Initiate bootloader cold boot`<br>
+5. Once connected to the bootloader, select the file we want to upload
+   (typically, cf2.bin) and press `Program`<br>
+6. Wait until it's done and reset the Crazyflie<br><br>
+
 ### Channel changing
 This is also described on the page linked above. Use the following format: 0/__xx__/2M where __xx__ stands for the radio channel.<br>
 The crazyflie has to be restared for the changes to take effect.<br>