Espflash works - then no device found on /dev/ttyACM0

I have a Uno R4 Wifi which I have owned for a few days. I am using Ubuntu 24.04 LTS as my workstation.
I cannot load any sketches onto the R4 wifi. I cannot configure it with the cloud IDE, the local ide, or the fwuploader. They fail to find a device on ttyACM0. Though dmesg and lsusb both report the device.

Can this device be restored to normal working state - or do I need to return it?

espflash works following the procedure in Restore the USB connectivity firmware on UNO R4 WiFi with espflash.

❯ bin/espflash write-bin -b 115200 0x0 ./firmware/UNOR4-WIFI-S3-0.4.1.bin
[2025-01-29T21:20:48Z INFO ] 🚀 A new version of espflash is available: v3.3.0
[2025-01-29T21:20:48Z INFO ] Serial port: '/dev/ttyACM0'
[2025-01-29T21:20:48Z INFO ] Connecting...
[2025-01-29T21:20:49Z INFO ] Using flash stub
Chip type:         esp32s3 (revision v0.2)
Crystal frequency: 40MHz
Flash size:        8MB
Features:          WiFi, BLE
MAC address:       f0:f5:bd:4f:26:40
[00:00:16] [========================================]     877/877     0x0     

It seems that anything that tries to load software onto the arduino:renesas_uno:unor4wifi fails to find any device on ttyyACM0

arduino-fwuploader  LICENSE.txt
❯ ./arduino-fwuploader firmware flash -b arduino:renesas_uno:unor4wifi -a /dev/ttyACM0 -v --log-level debug
INFO[0000] arduino-fwuploader Version: 2.4.1 Commit: d945078 Date: 2023-08-31T07:42:57Z 
DEBU[0000] fqbn: arduino:renesas_uno:unor4wifi, address: /dev/ttyACM0 
INFO[0000] Checking signature                            index=/tmp/5577006791947779410292301756/index.json signatureFile=/t
mp/5577006791947779410292301756/index.json.sig trusted=true
INFO[0000] Checking signature                            index=/tmp/fwuploader/package_index.json signatureFile=/tmp/fwuploa
der/package_index.json.sig trusted=true
INFO[0000] Checking signature                            index=/tmp/fwuploader/plugin_firmware_index.json signatureFile=/tmp
/fwuploader/plugin_firmware_index.json.sig trusted=true
DEBU[0000] got board: arduino:renesas_uno:unor4wifi     
DEBU[0000] Tool dependency to download                   dep="arduino:uno-r4-wifi-fwuploader-plugin@1.0.0"
DEBU[0000] Tool release to download                      tool="arduino:uno-r4-wifi-fwuploader-plugin@1.0.0"
DEBU[0001] upload tool downloaded in /tmp/fwuploader/tools/uno-r4-wifi-fwuploader-plugin/1.0.0 
DEBU[0001] Tool dependency to download                   dep="arduino:espflash@2.0.0"
DEBU[0001] Tool release to download                      tool="arduino:espflash@2.0.0"
DEBU[0001] upload tool downloaded in /tmp/fwuploader/tools/espflash/2.0.0 
DEBU[0001] Tool dependency to download                   dep="arduino:bossac@1.9.1-arduino5"
DEBU[0001] Tool release to download                      tool="arduino:bossac@1.9.1-arduino5"
DEBU[0001] upload tool downloaded in /tmp/fwuploader/tools/bossac/1.9.1-arduino5 
DEBU[0001] module name: ESP32-S3, firmware version: 0.4.1 
DEBU[0002] firmware file downloaded in /tmp/fwuploader/firmwares/ESP32-S3/0.4.1/ESP32-S3.bin 
INFO[0002] Uploading firmware (try 1 of 9)              
time=2025-01-30T08:27:59.580+11:00 level=INFO msg=upload_command_sketch
time=2025-01-30T08:27:59.581+11:00 level=INFO msg="sending serial reset"
time=2025-01-30T08:28:00.083+11:00 level=INFO msg="uploading command sketch with bossac"
No device found on /dev/ttyACM0
Error: reboot mode: upload commands sketch: exit status 1
ERRO[0004] couldn't update firmware: exit status 3      
INFO[0004] Waiting 1 second before retrying...          
INFO[0005] Uploading firmware (try 2 of 9)              
time=2025-01-30T08:28:02.001+11:00 level=INFO msg=upload_command_sketch
time=2025-01-30T08:28:02.001+11:00 level=INFO msg="sending serial reset"
time=2025-01-30T08:28:02.503+11:00 level=INFO msg="uploading command sketch with bossac"
No device found on /dev/ttyACM0
Error: reboot mode: upload commands sketch: exit status 1
ERRO[0006] couldn't update firmware: exit status 3      
INFO[0006] Waiting 1 second before retrying...          
INFO[0007] Uploading firmware (try 3 of 9)              
time=2025-01-30T08:28:04.420+11:00 level=INFO msg=upload_command_sketch
time=2025-01-30T08:28:04.420+11:00 level=INFO msg="sending serial reset"
time=2025-01-30T08:28:04.923+11:00 level=INFO msg="uploading command sketch with bossac"
No device found on /dev/ttyACM0

dmesg normal mode:

[ 2641.921916] usb 3-8: USB disconnect, device number 9
[ 2644.390729] usb 3-8: new full-speed USB device number 10 using xhci_hcd
[ 2644.788542] usb 3-8: New USB device found, idVendor=2341, idProduct=1002, bcdDevice= 1.00
[ 2644.788560] usb 3-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2644.788567] usb 3-8: Product: UNO WiFi R4 CMSIS-DAP
[ 2644.788573] usb 3-8: Manufacturer: Arduino
[ 2644.788577] usb 3-8: SerialNumber: F0F5BD4F2640
[ 2644.793018] hid-generic 0003:2341:1002.000B: hiddev2,hidraw7: USB HID v1.11 Device [Arduino UNO WiFi R4 CMSIS-DAP] on usb-0000:00:14.0-8/input0
[ 2644.793511] cdc_acm 3-8:1.1: ttyACM0: USB ACM device

❯ sudo lsusb | egrep 'JTAG|Arduino'
Bus 003 Device 010: ID 2341:1002 Arduino SA UNO WiFi R4 CMSIS-DAP

dmesg espflash JTAG mode:

[ 2826.889772] usb 3-8: USB disconnect, device number 10
[ 2833.245295] usb 3-8: new full-speed USB device number 11 using xhci_hcd
[ 2833.372577] usb 3-8: New USB device found, idVendor=303a, idProduct=1001, bcdDevice= 1.01
[ 2833.372594] usb 3-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2833.372601] usb 3-8: Product: USB JTAG/serial debug unit
[ 2833.372606] usb 3-8: Manufacturer: Espressif
[ 2833.372611] usb 3-8: SerialNumber: F0:F5:BD:4F:26:40
[ 2833.376380] cdc_acm 3-8:1.0: ttyACM0: USB ACM device

❯ sudo lsusb | egrep 'JTAG|Arduino'
Bus 003 Device 011: ID 303a:1001 Espressif USB JTAG/serial debug unit

yes I did plug it into a different port for JTAG - but that makes no difference. I've tried all combinations.

I bought another UNO r4 wifi, because I needed to keep working. It programs perfectly on the same host.

Help appreciated!

Have you set the permissions to allow uploading?

Thanks for replying.
Which rules where?

I have:

❯ cat /etc/udev/rules.d/69-arduino-uno-r4.rules
# CMSIS-DAP for Arduino uni r4 wifi

ACTION!="add|change", GOTO="arduino_rules_end"

SUBSYSTEM=="usb", ATTR{idVendor}=="2341", ATTR{idProduct}=="1002", TAG+="uaccess"

LABEL="arduino_rules_end"

I have another identical board which behaves perfectly in the same setup. This is my first pass at Arduino programming - so I'm not confident in setup.

If the espflash worked, doesn't that indicate the 'rules' are OK?

Following the instructions in https://arduino.github.io/arduino-cli/0.35/getting-started/

My user is a member of the dialout group.

❯ ls -l /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Jan 30 17:19 /dev/ttyACM0
❯ cat MyFirstSketch/MyFirstSketch.ino
void setup() {
    pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
    digitalWrite(LED_BUILTIN, HIGH);
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
}
❯ arduino-cli board list
Port         Protocol Type              Board Name          FQBN                          Core
/dev/ttyACM0 serial   Serial Port (USB) Arduino UNO R4 WiFi arduino:renesas_uno:unor4wifi arduino:renesas_uno

❯ arduino-cli compile --fqbn arduino:renesas_uno:unor4wifi MyFirstSketch
Sketch uses 52232 bytes (19%) of program storage space. Maximum is 262144 bytes.
Global variables use 6744 bytes (20%) of dynamic memory, leaving 26024 bytes for local variables. Maximum is 32768 bytes.

Used platform       Version Path
arduino:renesas_uno 1.3.2   /home/peterg/.arduino15/packages/arduino/hardware/renesas_uno/1.3.2
❯ arduino-cli core install arduino:renesas_uno
Platform arduino:renesas_uno@1.3.2 already installed
❯ arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:renesas_uno:unor4wifi MyFirstSketch
No device found on ttyACM0
Failed uploading: uploading error: exit status 1

You got it. Is it just the one group?