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:
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.
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?
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?
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.
I am just getting started with the Xiao and can confirm this behavior: I have two Xiao from 2020 and they have same UUID.
I am using MacOS 10.4.6 and latest versions of Arduino IDE and Xiao. When I upload a sketch, I get the “disk not ejected properly” message and the Xiao is flashed properly with no issue but the message is annoying.
Additionally, even when I eject the Xiao “properly” in bootloader mode, after unplugging the Xiao from the USB-C cable, the “disk not ejected properly” message pops up too.
Thank you for sharing this workaround to alleviate this annoyance.
I’m starting to use a XIAO with Arduino IDE 2.0.3 on a Mac M1 Ventura 13.1.
I already change stab file to prevent the mounting of the Xiao as a volume.
I still got the error “No upload port found” , “SAM-BA operation failed” and “Failed uploading: uploading error: exit status 1” when I upload the Blink sketch.
I tried to restart the Mac, change the USB port.
What can I do more to make it running?
Thanks
Using the XIAO nrf52840 sense board, having a fresh zephyr sdk and project installed:
- west build -p always -b xiao_ble/nrf52840/sense samples/hello_world
- double click the reset button to enable the bootloader
- west flash -r uf2
The last command gives the following output (but … the device is programmed correctly though!!):
-- west flash: rebuilding
ninja: no work to do.
-- west flash: using runner uf2
-- runners.uf2: Copying UF2 file to '/Volumes/XIAO-SENSE'
Traceback (most recent call last):
File "/Users/adev/miniconda3/envs/zypher/bin/west", line 8, in <module>
sys.exit(main())
^^^^^^
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/site-packages/west/app/main.py", line 1085, in main
app.run(argv or sys.argv[1:])
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/site-packages/west/app/main.py", line 244, in run
self.run_command(argv, early_args)
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/site-packages/west/app/main.py", line 505, in run_command
self.run_extension(args.command, argv)
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/site-packages/west/app/main.py", line 654, in run_extension
self.cmd.run(args, unknown, self.topdir, manifest=self.manifest,
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/site-packages/west/commands.py", line 194, in run
self.do_run(args, unknown)
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/flash.py", line 33, in do_run
do_run_common(self, my_args, runner_args, domain_file=domains_file)
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/run_common.py", line 288, in do_run_common
do_run_common_image(command, user_args, user_runner_args,
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/run_common.py", line 459, in do_run_common_image
runner.run(command_name)
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/runners/core.py", line 660, in run
self.do_run(command, **kwargs)
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/runners/uf2.py", line 105, in do_run
self.copy_uf2_to_partition(part)
File "/Users/adev/zephyrproject/zephyr/scripts/west_commands/runners/uf2.py", line 88, in copy_uf2_to_partition
copy(self.cfg.uf2_file, part.mountpoint)
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/shutil.py", line 435, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/shutil.py", line 266, in copyfile
_fastcopy_fcopyfile(fsrc, fdst, posix._COPYFILE_DATA)
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/shutil.py", line 110, in _fastcopy_fcopyfile
raise err from None
File "/Users/adev/miniconda3/envs/zypher/lib/python3.12/shutil.py", line 103, in _fastcopy_fcopyfile
posix._fcopyfile(infd, outfd, flags)
OSError: [Errno 5] Input/output error: '/Users/adev/zephyrproject/zephyr/build/zephyr/zephyr.uf2' -> '/Volumes/XIAO-SENSE/zephyr.uf2'