diff --git a/.markdownlint.json b/.markdownlint.json
new file mode 100644
index 00000000..ab490fe6
--- /dev/null
+++ b/.markdownlint.json
@@ -0,0 +1,13 @@
+{
+ "default": true,
+ "MD013": false,
+ "MD028": false,
+ "MD031": false,
+ "MD033": {
+ "allowed_elements": ["table", "tr", "td", "th", "img", "br", "b", "a", "p", "div"]
+ },
+ "MD040": false,
+ "MD051": false,
+ "MD058": false,
+ "MD060": false
+}
diff --git a/README.md b/README.md
index 577fa176..c52499d1 100644
--- a/README.md
+++ b/README.md
@@ -68,21 +68,21 @@ Component Picker showing 48 available components with visual previews, search, a
-  Raspberry Pi Pico |
-  Raspberry Pi Pico W |
-  ESP32 DevKit C |
-  ESP32-S3 |
+  Raspberry Pi Pico |
+  Raspberry Pi Pico W |
+  ESP32 DevKit C |
+  ESP32-S3 |
-  ESP32-C3 |
-  Seeed XIAO ESP32-C3 |
-  ESP32-C3 SuperMini |
-  ESP32-CAM |
+  ESP32-C3 |
+  Seeed XIAO ESP32-C3 |
+  ESP32-C3 SuperMini |
+  ESP32-CAM |
-  Seeed XIAO ESP32-S3 |
-  Arduino Nano ESP32 |
-  Raspberry Pi 3B |
+  Seeed XIAO ESP32-S3 |
+  Arduino Nano ESP32 |
+  Raspberry Pi 3B |
Arduino Uno / Nano / Mega (ATmega328p / 2560) |
diff --git a/docs/ESP32_EMULATION.md b/docs/ESP32_EMULATION.md
index 1f61c113..b65cb28b 100644
--- a/docs/ESP32_EMULATION.md
+++ b/docs/ESP32_EMULATION.md
@@ -7,6 +7,18 @@
> **Note on ESP32-C3:** The ESP32-C3, XIAO ESP32-C3, and ESP32-C3 SuperMini boards use the **RISC-V RV32IMC** architecture and have their own in-browser emulator. See → [RISCV_EMULATION.md](./RISCV_EMULATION.md)
+## Supported Boards
+
+
+
+  ESP32 DevKit C V4 |
+  ESP32-S3 |
+  ESP32-CAM |
+  Seeed XIAO ESP32-S3 |
+  Arduino Nano ESP32 |
+
+
+
---
## Table of Contents
diff --git a/docs/RASPBERRYPI3_EMULATION.md b/docs/RASPBERRYPI3_EMULATION.md
index eccb0d33..b9585a5f 100644
--- a/docs/RASPBERRYPI3_EMULATION.md
+++ b/docs/RASPBERRYPI3_EMULATION.md
@@ -57,6 +57,12 @@ There is **no compilation step** for the Raspberry Pi: you write a Python script
## 2. Supported Boards
+
+
+  Raspberry Pi 3B |
+
+
+
| Board | QEMU Machine | CPU | Notes |
| ----- | ------------ | --- | ----- |
| Raspberry Pi 3B | `raspi3b` | BCM2837, 4× Cortex-A53 | Full Raspberry Pi OS support |
@@ -172,7 +178,7 @@ Both ports are allocated dynamically at startup to avoid conflicts on the host m
The `gpio_shim.py` module is injected into the Raspberry Pi OS at the standard `RPi.GPIO` installation path:
-```
+```text
/usr/local/lib/python3.11/dist-packages/RPi/GPIO.py
```
diff --git a/docs/RISCV_EMULATION.md b/docs/RISCV_EMULATION.md
index 3e0f3062..7d4f5065 100644
--- a/docs/RISCV_EMULATION.md
+++ b/docs/RISCV_EMULATION.md
@@ -48,6 +48,14 @@ Boards based on **ESP32-C3** use Espressif's **ESP32-C3** processor, which imple
## 2. Supported Boards
+
+
+  ESP32-C3 DevKit |
+  Seeed XIAO ESP32-C3 |
+  ESP32-C3 SuperMini |
+
+
+
| Board | arduino-cli FQBN | Built-in LED |
| ----- | ---------------- | ------------ |
| ESP32-C3 DevKit | `esp32:esp32:esp32c3` | GPIO 8 |
@@ -58,7 +66,7 @@ Boards based on **ESP32-C3** use Espressif's **ESP32-C3** processor, which imple
## 3. Emulator Architecture
-```
+```text
Arduino Sketch (.ino)
│
▼ arduino-cli (backend)
@@ -225,7 +233,7 @@ See full script: `frontend/src/__tests__/fixtures/esp32c3-blink/build.sh`
The backend produces a merged **4 MB** image:
-```
+```text
Offset 0x00000: 0xFF (empty)
Offset 0x01000: bootloader (ESP32 format image, magic 0xE9)
Offset 0x08000: partition table
@@ -234,7 +242,7 @@ Offset 0x10000: app binary (ESP32 format image, magic 0xE9) ← parsed here
### ESP32 Image Header (24 bytes)
-```
+```text
+0x00 magic (0xE9)
+0x01 segment_count
+0x02 spi_mode
@@ -245,7 +253,7 @@ Offset 0x10000: app binary (ESP32 format image, magic 0xE9) ← parsed here
### Segment Header (8 bytes)
-```
+```text
+0x00 load_addr ← destination virtual address (e.g. 0x42000000)
+0x04 data_len
+0x08 data[data_len]
@@ -401,14 +409,15 @@ Compiles `blink.c` with `riscv32-esp-elf-gcc` (the arduino-cli toolchain) and ve
| `reset() clears GPIO state` | Functional reset |
**Expected result:**
-```
+
+```text
✓ esp32c3-simulation.test.ts (30 tests) ~500ms
✓ esp32c3-blink.test.ts (8 tests) ~300ms
```
### Bare-Metal Test Binary
-```
+```text
frontend/src/__tests__/fixtures/esp32c3-blink/
├── blink.c ← bare-metal source code
├── link.ld ← linker script (IROM @ 0x42000000, DRAM @ 0x3FC80000)
diff --git a/docs/RP2040_EMULATION.md b/docs/RP2040_EMULATION.md
index 5e23ffee..a6d392fe 100644
--- a/docs/RP2040_EMULATION.md
+++ b/docs/RP2040_EMULATION.md
@@ -56,6 +56,13 @@ The **Raspberry Pi Pico** and **Pico W** boards use the **RP2040** microcontroll
## 2. Supported Boards
+
+
+  Raspberry Pi Pico |
+  Raspberry Pi Pico W |
+
+
+
| Board | arduino-cli FQBN | Built-in LED | Notes |
| ----- | ---------------- | ------------ | ----- |
| Raspberry Pi Pico | `rp2040:rp2040:rpipico` | GPIO 25 | Standard Pico |
diff --git a/docs/img/boards/Raspberry_Pi_3.png b/docs/img/boards/Raspberry_Pi_3.png
new file mode 100644
index 00000000..13edfb0c
Binary files /dev/null and b/docs/img/boards/Raspberry_Pi_3.png differ
diff --git a/docs/img/boards/arduino-nano-esp32.png b/docs/img/boards/arduino-nano-esp32.png
new file mode 100644
index 00000000..ca88855c
Binary files /dev/null and b/docs/img/boards/arduino-nano-esp32.png differ
diff --git a/docs/img/boards/esp32-c3.png b/docs/img/boards/esp32-c3.png
new file mode 100644
index 00000000..bf4aef19
Binary files /dev/null and b/docs/img/boards/esp32-c3.png differ
diff --git a/docs/img/boards/esp32-cam.png b/docs/img/boards/esp32-cam.png
new file mode 100644
index 00000000..81e74174
Binary files /dev/null and b/docs/img/boards/esp32-cam.png differ
diff --git a/docs/img/boards/esp32-devkit-c-v4.png b/docs/img/boards/esp32-devkit-c-v4.png
new file mode 100644
index 00000000..bcc0006d
Binary files /dev/null and b/docs/img/boards/esp32-devkit-c-v4.png differ
diff --git a/docs/img/boards/esp32-s3.png b/docs/img/boards/esp32-s3.png
new file mode 100644
index 00000000..946b088a
Binary files /dev/null and b/docs/img/boards/esp32-s3.png differ
diff --git a/docs/img/boards/esp32c3-supermini.png b/docs/img/boards/esp32c3-supermini.png
new file mode 100644
index 00000000..a112758f
Binary files /dev/null and b/docs/img/boards/esp32c3-supermini.png differ
diff --git a/docs/img/boards/pi-pico-w.png b/docs/img/boards/pi-pico-w.png
new file mode 100644
index 00000000..93857fef
Binary files /dev/null and b/docs/img/boards/pi-pico-w.png differ
diff --git a/docs/img/boards/pi-pico.png b/docs/img/boards/pi-pico.png
new file mode 100644
index 00000000..a0bfdc4d
Binary files /dev/null and b/docs/img/boards/pi-pico.png differ
diff --git a/docs/img/boards/xiao-esp32-c3.png b/docs/img/boards/xiao-esp32-c3.png
new file mode 100644
index 00000000..3399fc27
Binary files /dev/null and b/docs/img/boards/xiao-esp32-c3.png differ
diff --git a/docs/img/boards/xiao-esp32-s3.png b/docs/img/boards/xiao-esp32-s3.png
new file mode 100644
index 00000000..7782d070
Binary files /dev/null and b/docs/img/boards/xiao-esp32-s3.png differ
diff --git a/frontend/public/image.png b/frontend/public/image.png
index f2d5726e..e3ded59c 100644
Binary files a/frontend/public/image.png and b/frontend/public/image.png differ