2 Commits
v0.2.2 ... main

Author SHA1 Message Date
9ad7064843 Recovery guide release: merge dev into main 2026-05-04 16:14:43 +02:00
e1ec3b86a7 Added recovery guide 2026-05-04 16:13:55 +02:00
6 changed files with 6092 additions and 0 deletions

BIN
img/recovery_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
img/recovery_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

BIN
img/recovery_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
img/recovery_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

6016
recovery.pdf Normal file

File diff suppressed because one or more lines are too long

76
recovery.qmd Normal file
View File

@@ -0,0 +1,76 @@
---
title: "Arduino Giga Recovery Guide"
author:
- name: Hector van der Aa
email: hector@h3cx.dev
affiliation: Version 0.1.0
date: today
date-format: long
format:
typst:
mainfont: Inter
codefont: "JetBrains Mono"
papersize: a4
margin:
x: 2cm
y: 2cm
toc: true
---
```{=typst}
#set page(
header: align(right)[
Version 0.1.0
],
numbering: "1",
)
```
```{=typst}
#pagebreak()
```
# Background
This document outlines the procedure to recover a bricked Arduino Giga R1 board.
::: {.callout-important}
This guide does **NOT** return the Arduino Giga to its factory state *(ie the ability to flash via USB with the Arduino IDE)*. However it can be applicable as a first step to a factory restore to Arduino defaults.
:::
After having does a few tests with code generated by STM32CubeMX, I once found one of my Arduinos in a seemingly dead state, no signs of life other than the power LED and a daunting error when trying to flash: `Error: Failed to initialize DAP`. After many hours of trying things, I finally managed to figure out how to recover the mcu when it has been flashed with firmware that rendered it lifeless.
::: {.callout-note}
Once the board is recovered, **CHECK** your RCC configuration in STM32CubeMX, it is likely a power configuration issue where RCC tries to power from an external SMPS when it should be set to LDO_INTERNAL
:::
# Recovery
## Prerequisites
In order to recover the board, you will need the following:
- STM32CubeProgrammer
- A USB-C cable
## Process
![Connection Mode Selection](img/recovery_1.png){width=90%}
Open up STM32CubeProgrammer and set the connection mode to USB
![Arduino Giga BOOT Button](img/recovery_2.png){width=80%}
Then while holding down the `BOOT` button on the Arduino Giga, plug it in. Keep holding the button down for about 5 seconds then release.
![Refresh and Connect Sequence](img/recovery_3.png){width=40%}
Then (1) click the refresh button in STM32CubeProgrammer, you should see a USB device appear, if it doesnt, unplug your board and try the previous step again.
Once the device is recognized, (2) click on connect to establish a connection to the board.
![Full Chip Erase Sequence](img/recovery_4.png){width=90%}
You can now proceed to a chip erase:
1. Open the "Erasing and Programming" window
2. Click the "Full chip erase" button, acknowledge any warnings etc
3. Once the chip erase is complete, click disconnect
**Congrats**, you have successfully unbricked your board, you should now be able to connect to it via JLink. Now good luck finding the config fluke that bricked it.