# Arduino UNO R4 uploading firmware

**URL:** <https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018>\
**Category:** UNO R4 WiFi\
**Created:** [January 7, 2024, 8:23am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018 "2024-01-07T08:23:28Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![caiden701](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@caiden701](https://forum.arduino.cc/u/caiden701)\
**Post date:** [January 7, 2024, 8:23am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/1 "2024-01-07T08:23:29Z")

</div>

So, I just got the Arduino UNO R4 wifi and was trying to test connecting to my Wi-Fi with the example code given in the wifiS3 examples, but it said I needed to upgrade my firmware. I'm pretty new to all this so I just looked up how to do that and it brought me to this [UNO R4 WiFi Custom Firmware Upload to ESP32 (Advanced) | Arduino Documentation](https://docs.arduino.cc/tutorials/uno-r4-wifi/esp32-upload) I realized later that this actually was for flashing custom firmware and that you can just upgrade the firmware with the firmware tool in Arduino IDE 😕 . Anyways I was following the steps and got all the way to the part where it says erase flash memory and managed to do that but now my Arudino IDE recognizes my uno R4 as the ESP32 and I can't actually upload anything anymore ad the RX stays on ☹ . Im pretty sure I just need to upload the correct firmware the same way I erased the firmware but Im not exactly sure how to do that I would not like to mess my board up more than I already have 😢 . If anyone could help save my board it will be much appreciated. I can also provide more details from what I have tried and how the board ended up this way.

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [January 7, 2024, 8:24am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/2 "2024-01-07T08:24:26Z")

</div>

Welcome to the forum

You started a topic in the Uncategorised category of the forum

Your topic has been moved to a relevant category

---

<div class="post-metadata">

**Author:** ![caiden701](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@caiden701](https://forum.arduino.cc/u/caiden701)\
**Post date:** [January 7, 2024, 8:45am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/3 "2024-01-07T08:45:36Z")

</div>

Also, I've been trying to follow this [Update the connectivity module firmware on UNO R4 Wi-Fi – Arduino Help Center] ([https://support.arduino.cc/hc/en-us/articles/9670986058780-Update-the-connectivity-module-firmware-on-UNO-R4-WiFi#espflash](https://support.arduino.cc/hc/en-us/articles/9670986058780-Update-the-connectivity-module-firmware-on-UNO-R4-WiFi#espflash)) and this:

Short the upload pins for the esp32s3 then connect it to the USB port, install python then:

`pip3 install esptool`

```arduino
esptool --chip esp32s3 --port <com port> erase_flash

esptool --chip esp32s3 --port <com port> write_flash -z 0 <firmware.bin>

```

Use the .bin file you find inside the zip here:

[https://github.com/arduino/uno-r4-wifi-usb-bridge/releases/download/0.2.0/unor4wifi-update-windows.zip](https://github.com/arduino/uno-r4-wifi-usb-bridge/releases/download/0.2.0/unor4wifi-update-windows.zip)

I used the bin file and shorted the download pin (I'm not sure if that's the same as the upload pin but I didn't see an upload pin on the pinout, so I assume they're the same) but then I get an access denied message and something that says this app can't run on your PC. I don't see what the issue would be though because I'm operating on windows 11.

---

<div class="post-metadata">

**Author:** ![davaabi](https://avatars.discourse-cdn.com/v4/letter/d/c0e974/32.png) [@davaabi](https://forum.arduino.cc/u/davaabi)\
**Post date:** [January 7, 2024, 12:15pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/4 "2024-01-07T12:15:15Z")

</div>

> [@caiden701](#):
>
> `esptool --chip esp32s3 --port <com port> write_flash -z 0 <firmware.bin>`

how to write this code i am getting error message like this. could you help me.

```arduino
C:\>C:\Users\Dava\AppData\Local\Programs\Python\Python312\python -m esptool --chip esp32s3 --port COM8 write_flash -z 0 UNOR4-WIFI-S3-0.3.0-rc1.bin

usage: esptool write_flash [-h] [--erase-all] [--flash_freq {keep,80m,60m,48m,40m,30m,26m,24m,20m,16m,15m,12m}]
                           [--flash_mode {keep,qio,qout,dio,dout}]
                           [--flash_size {detect,keep,256KB,512KB,1MB,2MB,2MB-c1,4MB,4MB-c1,8MB,16MB,32MB,64MB,128MB}]
                           [--spi-connection SPI_CONNECTION] [--no-progress] [--verify] [--encrypt]
                           [--encrypt-files <address> <filename> [<address> <filename> ...]]
                           [--ignore-flash-encryption-efuse-setting] [--force] [--compress | --no-compress]
                           <address> <filename> [<address> <filename> ...]
esptool write_flash: error: argument <address> <filename>: [Errno 2] No such file or directory: 'UNOR4-WIFI-S3-0.3.0-rc1.bin'

```

---

<div class="post-metadata">

**Author:** ![davaabi](https://avatars.discourse-cdn.com/v4/letter/d/c0e974/32.png) [@davaabi](https://forum.arduino.cc/u/davaabi)\
**Post date:** [January 7, 2024, 12:17pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/5 "2024-01-07T12:17:03Z")

</div>

> [@davaabi](#):
>
> ```arduino
> C:\>C:\Users\Dava\AppData\Local\Programs\Python\Python312\python -m esptool --chip esp32s3 --port COM8 write_flash -z 0 UNOR4-WIFI-S3-0.3.0-rc1.bin
> 
> ```

am i wrong write the directory of bin file?

---

<div class="post-metadata">

**Author:** ![caiden701](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@caiden701](https://forum.arduino.cc/u/caiden701)\
**Post date:** [January 7, 2024, 4:00pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/6 "2024-01-07T16:00:48Z")

</div>

If you copy were UNOR4-WIFI-S3-0.3.0-rcl.bin is as a path and then paste it should work so it should look like this: C:\Users\moren\>esptool --chip esp32s3 --port COM6 write\_flash -z 0 "C:\Users\moren\OneDrive\Desktop\firmware1\unor4wifi-update-windows\firmware\UNOR4-WIFI-S3-0.2.0-rc1.bin"

---

<div class="post-metadata">

**Author:** ![caiden701](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@caiden701](https://forum.arduino.cc/u/caiden701)\
**Post date:** [January 7, 2024, 4:56pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/7 "2024-01-07T16:56:35Z")

</div>

So Ive been following this again: [Update the connectivity module firmware on UNO R4 WiFi – Arduino Help Center](https://support.arduino.cc/hc/en-us/articles/9670986058780-Update-the-connectivity-module-firmware-on-UNO-R4-WiFi#espflash) but as soon as i run the command i get this error:

PS C:\Users\moren\Downloads\unor4wifi-update-windows (4)\unor4wifi-update-windows\firmware\> bin\espflash write-bin -b 115200 0x0 firmware\UNOR4-WIFI-S3-0.3.0-rc1.bin  
bin\espflash : The module 'bin' could not be loaded. For more information, run 'Import-Module bin'.  
At line:1 char:1

- bin\espflash write-bin -b 115200 0x0 firmware\UNOR4-WIFI-S3-0.3.0-rc1 ...
- 

```arduino
  + CategoryInfo : ObjectNotFound: (bin\espflash:String) [], CommandNotFoundException
  + FullyQualifiedErrorId : CouldNotAutoLoadModule

```

Why doesnt this work?

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [January 7, 2024, 5:02pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/8 "2024-01-07T17:02:10Z")

</div>

Hi @caiden701. The reason it doesn't work is because you opened PowerShell in the `firmware` subfolder of the extracted folder instead of in the root of the extracted folder.

If you still have the PowerShell window open, type this command:

```plaintext
cd ..

```

Then press the **Enter** key.

This will change the directory up one level. If you now run the `bin\espflash write-bin -b 115200 0x0 firmware\UNOR4-WIFI-S3-0.3.0-rc1.bin`, it should work as expected this time.

---

<div class="post-metadata">

**Author:** ![caiden701](https://avatars.discourse-cdn.com/v4/letter/c/5f8ce5/32.png) [@caiden701](https://forum.arduino.cc/u/caiden701)\
**Post date:** [January 7, 2024, 5:21pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/9 "2024-01-07T17:21:27Z")

</div>

OOOOOOOO Thank you so much!

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [January 7, 2024, 7:37pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/10 "2024-01-07T19:37:12Z")

</div>

You are welcome. I'm glad if I was able to be of assistance.

Regards,  
Per

---

<div class="post-metadata">

**Author:** ![kwintenhale](https://avatars.discourse-cdn.com/v4/letter/k/e9bcb4/32.png) [@kwintenhale](https://forum.arduino.cc/u/kwintenhale)\
**Post date:** [March 7, 2024, 4:31am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/11 "2024-03-07T04:31:51Z")

</div>

I am getting an error about not finding the file specified.

 ![image](https://europe1.discourse-cdn.com/arduino/original/4X/a/4/6/a4651490efa607efbbd410f6f9b131ed3b0aed0e.png)  
Ive tried redownloading the file and making sure I am in the root folder but cannot get it to work.

Any help would be great

---

<div class="post-metadata">

**Author:** ![ptillisch](https://avatars.discourse-cdn.com/v4/letter/p/ad7895/32.png) [@ptillisch](https://forum.arduino.cc/u/ptillisch)\
**Post date:** [March 7, 2024, 8:36am UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/12 "2024-03-07T08:36:32Z")

</div>

Hi @kwintenhale. Since I'm not sure of exactly which procedure you followed before you encountered that problem, I think it will be best for you to start fresh. I'll provide complete instructions you can follow to do that:

1. Disconnect the USB cable of the **UNO R4 WiFi** board from your computer.
2. Use a jumper wire to connect these two pins ("DOWNLOAD" and "GND") on the 2x3 male header that is near the USB socket on the **UNO R4 WiFi** board:  
 ![labeled header pins](https://europe1.discourse-cdn.com/arduino/original/4X/9/9/0/990ded4eeaec5052b928f7c6261f380ee6ad152f.jpeg)

> **📷**
>
> [Arduino](https://github.com/arduino/docs-content/blob/main/content/hardware/02.hero/boards/uno-r4-wifi/tutorials/esp32-upload/assets/esp32-data-pins.png) - [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) (cropped)

3. Connect the **UNO R4 WiFi** board to your computer with a USB cable.
4. Open the release page for the latest version of the firmware in your web browser:  
[https://github.com/arduino/uno-r4-wifi-usb-bridge/releases/latest](https://github.com/arduino/uno-r4-wifi-usb-bridge/releases/latest)
5. Click the " **unor4wifi-update-windows.zip**" download link under the " **Assets**" section of the release page:
6. Wait for the download to finish.
7. [Extract](https://support.microsoft.com/windows/zip-and-unzip-files-f6dde0a7-0fec-8294-e1d3-703ed85e7ebc#:~:text=To%20unzip%20files,-Open%20File%20Explorer) the downloaded file.
8. Start [Windows " **File Explorer**"](https://support.microsoft.com/windows/find-and-open-file-explorer-ef370130-1cca-9dc5-e0df-2f7416fe1cb1).
9. Open the `unor4wifi-update-windows` folder that was created when you extracted the downloaded `unor4wifi-update-windows.zip` file at the previous step in the instructions.
10. In the folder listing of the `unor4wifi-update-windows` folder, hold the **Shift** key while clicking the right hand button on the mouse.
11. From the context menu, click " **Open PowerShell window here**".  
Windows [**PowerShell**](https://learn.microsoft.com/powershell/scripting/windows-powershell/starting-windows-powershell) will now open.
12. Type the following command at the Windows **PowerShell** window command prompt:

```plaintext
bin\espflash write-bin -b 115200 0x0 (Get-Item .\firmware\UNOR4-WIFI-S3-*.bin).FullName

```

13. Press the **Enter** key.
14. The **PowerShell** window might now show a list of the serial ports present on your computer.  
For example:

```plaintext
Start flashing firmware
[2023-07-11T06:39:09Z INFO] Detected 2 serial ports
[2023-07-11T06:39:09Z INFO] Ports which match a known common dev board are highlighted
[2023-07-11T06:39:09Z INFO] Please select a port
❯ COM1
  COM42- USB Serial Device (COM42)

```

If so, use the **↓** key on your keyboard to select the port of the **UNO R4 WiFi** board from the list, and then press the **Enter** key.
15. The terminal window will now show the following prompt:

```plaintext
? Remember this serial port for future use? (y/n) ›

```

Press the **N** key on your keyboard.
16. The flashing process should now start. Wait for it to finish, as indicated by output that looks something like this:

```plaintext
Chip type: esp32s3 (revision v0.1)
Crystal frequency: 40MHz
Flash size: 8MB
Features: WiFi, BLE
MAC address: dc:54:75:c4:c6:54
[00:00:15] [========================================] 826/826 0x0

```

17. Disconnect the USB cable of the **UNO R4 WiFi** board from your computer.  
❗ It is essential to perform this step.
18. Disconnect the jumper wire you added at step (2) of the instructions.
19. Connect the **UNO R4 WiFi** board to your computer with the USB cable again.

The board should now be recognized correctly in Arduino IDE once again.

* * *

Please let me know if you have any questions or problems while following those instructions.

---

<div class="post-metadata">

**Author:** ![johnmavic](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/johnmavic/32/1048690_2.png) [@johnmavic](https://forum.arduino.cc/u/johnmavic)\
**Post date:** [June 2, 2025, 2:50pm UTC](https://forum.arduino.cc/t/arduino-uno-r4-uploading-firmware/1208018/13 "2025-06-02T14:50:50Z")

</div>

## **Arduino Uno R4 WiFi Recovery: From "ESP32S3 CAM LCD" Back to Working Board**

### **How I solved the Problem: (very similar to the above process!)**

After a failed firmware update via Arduino IDE/Browser, my Arduino Uno R4 WiFi was recognized as **"ESP32S3 CAM LCD"** in Device Manager. Normal firmware update tools no longer worked - board was essentially "bricked".

### **Solution - Hardware Reset + espflash:**

**1. Download GitHub Tool:**

- `unor4wifi-update-windows.zip` from: [Releases · arduino/uno-r4-wifi-usb-bridge · GitHub](https://github.com/arduino/uno-r4-wifi-usb-bridge/releases)

**2. Perform Hardware Reset:**

- Disconnect board from PC
- Connect **GND** and **Download** pins (6-pin header next to USB-C) with jumper wire
- Reconnect board to PC while jumper is still connected
- Wait 5 seconds, then remove jumper

**3. espflash Command:**

- Open PowerShell in extracted folder
- Identify correct COM port in Device Manager
- Command: `.\bin\espflash.exe write-bin -p COM7 0x0 firmware\UNOR4-WIFI-S3-0.5.2.bin`

**4. Success:** After 1-2 minutes of firmware flashing → disconnect/reconnect board → Now recognized as **"Arduino Uno R4 WiFi"** again!

### **Result:**

Both "dead" boards are fully functional again. Arduino IDE recognizes them normally, WiFi works with firmware 0.5.2.

**Tip:** If you get `write-flash` errors, use `write-bin` instead - newer espflash versions have changed syntax.

Hope for all other "bricked" R4 WiFi boards! 🚀
