diff --git a/README.md b/README.md
index 8b0fbc41b6667c3aeee4d926a60ec27639faef66..fedd1a0f987280c32e090d9ab8a93d4a4729ab54 100644
--- a/README.md
+++ b/README.md
@@ -95,7 +95,44 @@ firefox localhost:9080
 
 ### PlaterformIO
 
-@todo
+
+1. Visual Studio Code: Download Visual Studio Code, either from <https://code.visualstudio.com/> or from the repository manager of your OS. Install it.
+
+![Getting started step1 - Download VSCode](docs/figures/image.png)
+
+2. PlatformIO: Launch Visual Studio Code. On the left side menu, click on the extension icon ![extension_icon](docs/figures/image1.png). In the search engine, type "PlatformIO IDE", and click install. Finally, restart Visual Studio Code when you are prompted to do so.
+
+![Getting started step 2 - PlatformIO installation](docs/figures/image2.png)
+
+Now we will download the code from Git to Visual Studio, and compile it.
+
+3. In Visual Studio code, on the left side menu, click on PlatformIO icon ![platformio_icon](docs/figures/image3.png)! Pro tip: if the alien icon does not show up spontaneously, wait for a few more seconds, then press F1 key and type platformio home.
+4. In Platform.io, select "Clone Git Project ". PlatformIO will automatically open a field in which you can type `https://gitlab.laas.fr/fablaas/pousseseringue/pousseseringue-arduino` and press enter. PlatformIO will ask you in which folder to clone the project. Choose the folder you have created previously. A pop up will appear asking if you trust the authors. You can trust us. :smile:
+
+![Getting started step4 - clone the git repository](docs/figures/image4.png)
+
+:warning: Make sure that the name of the cloned project has no space in its path as it would create issues.
+
+5. Make sure you are on the main branch of the Git project. You should see the following file tree.
+
+![Getting started step 5 - File tree and main branch](docs/figures/image5.png)
+
+## Step-by-step implementation
+
+6. Connect hardware
+
+Now we will connect the serynge to the PC with a micro USB cable.
+
+7. Build and Upload
+
+* In the bottom menu, click on the Build icon ![build_icon](docs/figures/image6.png). This will launch the compilation of the code. If this is the first time that you compile, Visual Studio Code will download several extensions that are required to write the code onto the serynge microcontroller. When the compilation is completed, you should see \[SUCCESS\] in the terminal.
+* In the bottom menu, click on the Upload icon ![flash_icon](docs/figures/image7.png). This will flash the compiled code on the microcontroller of serynge. When the process is completed, you should see \[SUCCESS\] in the terminal.
+
+:warning: For Linux users, you may have the LIBUSB_ERROR_ACCESS error when uploading to the board, check your udev permissions: <https://community.platformio.org/t/stm32-vs-code-mbed-upload-issue-error-libusb-open-failed-with-libusb-error-access-error-open-failed/10650>
+
+8. In the bottom toolbar, click on the Serial Monitor icon ![serial_icon](docs/figures/image8.png). You will be able to see the messages from the serynge in the terminal.
+
+That’s it!
 
 ### ESP
 
diff --git a/docs/figures/image.png b/docs/figures/image.png
new file mode 100644
index 0000000000000000000000000000000000000000..37f93487f8c96f1b20dcbaa67867bf3f33b4becc
Binary files /dev/null and b/docs/figures/image.png differ
diff --git a/docs/figures/image2.png b/docs/figures/image2.png
new file mode 100644
index 0000000000000000000000000000000000000000..f60fa329044011a45110d61d593932e8a6e7152f
Binary files /dev/null and b/docs/figures/image2.png differ
diff --git a/docs/figures/image3.png b/docs/figures/image3.png
new file mode 100644
index 0000000000000000000000000000000000000000..7012e2cc4ffe951ef6f55286d685797cccac1fda
Binary files /dev/null and b/docs/figures/image3.png differ
diff --git a/docs/figures/image4.png b/docs/figures/image4.png
new file mode 100644
index 0000000000000000000000000000000000000000..9e3f36630f5fb996a9ea3ae37145a9dc43e3a7c9
Binary files /dev/null and b/docs/figures/image4.png differ
diff --git a/docs/figures/image5.png b/docs/figures/image5.png
new file mode 100644
index 0000000000000000000000000000000000000000..0baeaf3a8f885111e26e79e9fb1594f8d2595d75
Binary files /dev/null and b/docs/figures/image5.png differ
diff --git a/docs/figures/image6.png b/docs/figures/image6.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff1b618fc52fda55717dc77f665423b3183145be
Binary files /dev/null and b/docs/figures/image6.png differ
diff --git a/docs/figures/image7.png b/docs/figures/image7.png
new file mode 100644
index 0000000000000000000000000000000000000000..df92b90509ac969e57bd3ca6407942a0416577f8
Binary files /dev/null and b/docs/figures/image7.png differ
diff --git a/docs/figures/image8.png b/docs/figures/image8.png
new file mode 100644
index 0000000000000000000000000000000000000000..829e984af8905b60db774ca169adf4736e125891
Binary files /dev/null and b/docs/figures/image8.png differ
diff --git a/docs/figures/image9.png b/docs/figures/image9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba979308a8d45b0f682b202794d81834a5e0c36b
Binary files /dev/null and b/docs/figures/image9.png differ