diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 0000000000000000000000000000000000000000..7d678a0af873a48f8853bc4d10cc639ba33480de
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,22 @@
+# Installing the motor controller
+
+## STM32
+
+You must install the appropriate Rust target and tools:
+
+```shell
+$ rustup target install thumbv7m-none-eabi
+$ cargo install probe-rs-tools
+```
+
+Then flash the executable using
+
+```shell
+$ cargo run --release -p dc-motor-driver-hat
+```
+
+## Raspberry Pi
+
+On the Raspberry Pi, ensure that `boot/config.txt` contains the line `dtparam=i2c_arm=on,i2c_arm_baudrate=400000`. It is important not to let the default 100kHz speed which causes some bit flipping because of a hardware bug in the BCM2712 SOC with regard to clock stretching.
+
+The Python module is located in `controller/python/controller.py`.
diff --git a/INSTALL.org b/INSTALL.org
deleted file mode 100644
index b1bdd1d23275b4b90410c0f7e0f63632e2bbef25..0000000000000000000000000000000000000000
--- a/INSTALL.org
+++ /dev/null
@@ -1,13 +0,0 @@
-#+TITLE: Installing the motor controller
-
-* STM32
-
-You must install the appropriate target: =rustup target install thumbv7m-none-eabi=.
-
-Execute =cargo build --release -p dc-motor-driver-hat=. The flashable executable will be in =target/thumbv7m-none-eabi/release/dc-motor-driver-hat=.
-
-* Raspberry Pi
-
-On the Raspberry Pi, ensure that =boot/config.txt= contains the line ~dtparam=i2c_arm=on,i2c_arm_baudrate=400000~. It is important not to let the default =100kHz= speed which causes some bit flipping.
-
-The Python module is located in =controller/python/controller.py=.