Error uploading with MACOS

I currently am using MacOs. When I upload I get the error “No device found on cu.usbmodem14601
An error occurred while uploading the sketch”

If I go to get board info, it is able to view information from the Seeeduino Xiao. I have tried resetting the board a few times. The yellow light is “pulsing” if that means anything. I am not able to upload the blink application. I moved it to a Windows machine and it worked fine. Any ideas?

Hi @Daniel_Lohin

I’m also running macOS(10.15.6) and it’s working fine. Can you share your macOS version and screenshots of this?

I am on 10.15.6 as well.

What is the serial port mentioned in the menu Tools > Port?

Call the menu and select the port of the Xiao board.

When plugged in the number changes, but there is only one with that style name and that is the one I select.

Does yours look sth like this:

image

I too am having issues with uploading on mac. (10.15.4). Arduino IDE version 10.8.12.

Using the following setting results in a unsuccessful flash.

This is the result. It allows for retries, but it’s not successful.

I saw in another thread that maybe change the USB stack to TinyUSB, but that also fails as display below, but also bricks the XAIO. I haven’t tried to reflash them yet.

I am just trying to flash the blink program.

Update to this: I have a second Mac running 10.15.4. I installed Arduino and then the SEEED board in board manager. I was able to make it work on this Mac. I am not sure what the difference between my two Macs are. It seems like other people are having this issue. My port doesn’t show Seeeduino Wio Terminal, instead it shows Seeeduino XIAO.

Is there a way to get more information during the flash process?

Hi @Daniel_Lohin @tomas316

Can you check one thing for me, can you navigate to the board path and check the date of the uploading tool.

Here is the path:

I found how to do more verbose logging, thoguh nothing obvious jumps out at me.

Sketch uses 34100 bytes (13%) of program storage space. Maximum is 262144 bytes.
Forcing reset using 1200bps open/close on port /dev/cu.usbmodem14601
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseQC35II-SPPDev, /dev/cu.MALS, /dev/cu.SOC, /dev/cu.usbmodem14601, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseQC35II-SPPDev, /dev/tty.MALS, /dev/tty.SOC, /dev/tty.usbmodem14601, } => {/dev/cu.usbmodem14601, /dev/tty.usbmodem14601, }
Found upload port: /dev/cu.usbmodem14601
/Users/daniellohin/Library/Arduino15/packages/Seeeduino/tools/bossac/1.7.0-arduino3/bossac -i -d --port=cu.usbmodem14601 -U true -i -e -w -v /var/folders/ns/bgs5rx6n3014pcf6wvy1dz080000gn/T/arduino_build_101582/Blink.ino.bin -R
No device found on cu.usbmodem14601
Set binary mode
Send auto-baud
Set binary mode
An error occurred while uploading the sketch

288 -rwxrwxrwx 1 user staff 146100 Aug 10 20:10 bossac

Hi @tomas316

We are currently looking into this and will update a new release soon for this problem. Sorry for any issues caused.

Same issue here. We were about to use this device to teach a University intro module to interfacing, most students will be on Mac (Music Tech, Audio systems and Production courses). hope you get this sorted soon. Any betas out there?

We have updated, please update to the latest ArduinoCore. @beshmeee

I am unable to upload programs to the Xiao using my Mac Mini (MacOS Mojave / OSX v10.14.6), Arduino IDE v1.8.13, Seeed SAMD Boards v1.8.1, using the tutorial ‘Blink’ program. The uploading tool (bossac?) is from August 10, 2020.

> Arduino: 1.8.13 (Mac OS X), Board: "Seeeduino XIAO, Arduino, Off"
> 
> Sketch uses 34100 bytes (13%) of program storage space. Maximum is 262144 bytes.
> An error occurred while uploading the sketch
> 
> Atmel SMART device 0x10010005 found
> SAM-BA operation failed
> Device       : ATSAMD21G18A
> Chip ID      : 10010005
> Version      : v1.1 [Arduino:XYZ] Nov 27 2019 16:35:59
> Address      : 8192
> Pages        : 3968
> Page Size    : 64 bytes
> Total Size   : 248KB
> Planes       : 1
> Lock Regions : 16
> Locked       : none
> Security     : false
> Boot Flash   : true
> BOD          : true
> BOR          : true
> Arduino      : FAST_CHIP_ERASE
> Arduino      : FAST_MULTI_PAGE_WRITE
> Arduino      : CAN_CHECKSUM_MEMORY_BUFFER
> Erase flash
> done in 0.865 seconds
> 
> Write 34716 bytes to flash (543 pages)

I thought I had bricked two of them. The first had pins soldered and was in a breadboard with minimum ‘demo’ circuitry (pot, led, tact sw). Thinking it may have been wired wrong, I tried a second fresh out of the box. Both of them ended up stuck in the ‘pulsing’ yellow led state, and are mounted on the desktop (Bootloader mode?). Tapping the reset pads causes it to do some different blinking and is removed from the Mac desktop, but it eventually ends up back in the pulsing mode and on the desktop.

I temporarily borrowed a Win10 laptop and was able to ‘recover’ both of them, and install the tutorial ‘Blink’ program using the same cable.

Any ideas on what I can do to be able to program these from my Mac?

I have lots of experience with other Arduinos (Uno, Mega2560, Nano and Pro Mini) on this Mac. This is my first non-ATMega chip, and I was looking forward to playing with this powerful little guy.

After playing around with it for a while, I believe the issue is caused by the Mac OS automatically mounting the Xiao on the desktop during the programming/uploading process. During the programming/uploading process the Xiao appears to be reset, or cycles briefly to the bootloader mode. When it is in this mode the Mac OS sees it as a removable media device, and automatically mounts it on the desktop. I appears that mounting the drive at that moment interrupts the normal upload/programming sequence, leaving the Xiao in an unstable or partially programmed state?

I have found a workaround by manually changing the /etc/fstab file so that the Mac OS no longer tries to automatically mount the Xiao as a drive on the desktop.

Instructions: Prevent a volume from mounting at startup

Conveniently, all of the Xiao that I received have the same UUID number, so you may only need to add one line. I suspect that this is an oversight, since every device is supposed to have a unique UUID, so it may be necessary to insert a line for each Xaio you use if that is ever corrected.

Also, note that the Xiao is mounted as a MSDOS volume (not a HFS), so you need to adjust the volume type accordingly. You should end up with a line that looks something like this (exactly like this if they all have the same UUID) in your /etc/fstab file:

UUID=CAA11D49-5022-35CD-98AD-0B82E7E05881 none msdos rw,noauto

If you want to access the Xiao as a removable drive in the future, you will need to force the Xiao into bootloader mode (double tap the reset tabs), and then use the ‘Disk Utilities’ app (or other drive utility) to manually mount it on the desktop.

1 Like