Hi there,
I bought a Qwiic Pro Micro board to develop with my M1 Ultra Mac Studio. The board is directly connected to a front USB C port via an Apple branded USB C to USB C cable.
The board only shows up for a few seconds if I double tap the reset button, then goes away after a few seconds. As a result, I cannot flash even a simple hello world firmware via the Arduino v2.3.4 app onto the board. Curious if anyone has any suggestions?
Here is what I did:
- Download Arduino v2.3.4 from https://www.arduino.cc/en/software
- Move the app to Applications folder
- Allow the app the launch
- Launch the app
- Go to Settings and register an Additional Board Manager URL via
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/main/IDE_Board_Manager/package_sparkfun_index.json
- Go to Tools > Board > Board Manager… and click Install
SparkFun AVR Boards
and got 1.1.13 downloaded - Go to Tools > Boards > SparkFun AVR Boards > SparkFun Pro Micro
- Go to Tools > Processor > and change to the 16 MHz option, since the spec sheet on SparkFun Qwiic Pro Micro - USB-C (ATmega32U4) says 16 MHz
If I look at devices without the Pro Micro board plugged in, I see 3 items:
>> ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodemM4AE1A561J6
/dev/tty.debug-console
If I plug the board in, the red LED turns on but nothing changes:
>> ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodemM4AE1A561J6
/dev/tty.debug-console
However, if I double-tap the reset button, I see a new device show up
>> ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodem5101
/dev/tty.debug-console /dev/tty.usbmodemM4AE1A561J6
But if I wait about 5 seconds, the new board goes away:
>> ls /dev/tty.*
/dev/tty.Bluetooth-Incoming-Port /dev/tty.usbmodemM4AE1A561J6
/dev/tty.debug-console
So I tried to go in the Arduino app, Verify, double tap the button, then click Upload as fast as I can. To make debugging easier, I turned on verbose output. Here is what I see:
FQBN: SparkFun:avr:promicro:cpu=16MHzatmega32U4
Using board 'promicro' from platform in folder: /Users/zach/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.13
Using core 'arduino' from platform in folder: /Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6
Detecting libraries used...
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 -DUSB_MANUFACTURER="Unknown" -DUSB_PRODUCT="SparkFun Pro Micro" -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/zach/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.13/variants/promicro /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp -o /dev/null
Alternatives for Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
-> candidates: [Wire@1.0]
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 -DUSB_MANUFACTURER="Unknown" -DUSB_PRODUCT="SparkFun Pro Micro" -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/zach/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.13/variants/promicro -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp -o /dev/null
Using cached library dependencies for file: /Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src/Wire.cpp
Using cached library dependencies for file: /Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src/utility/twi.c
Generating function prototypes...
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 -DUSB_MANUFACTURER="Unknown" -DUSB_PRODUCT="SparkFun Pro Micro" -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/zach/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.13/variants/promicro -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp -o /private/var/folders/7h/c0sfqmmj3m1ggbpb_9t0zskw0000gn/T/4070030899/sketch_merged.cpp
/Users/zach/Library/Arduino15/packages/builtin/tools/ctags/5.8-arduino11/ctags -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives /private/var/folders/7h/c0sfqmmj3m1ggbpb_9t0zskw0000gn/T/4070030899/sketch_merged.cpp
Compiling sketch...
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-g++ -c -g -Os -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_PROMICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x1b4f -DUSB_PID=0x9206 "-DUSB_MANUFACTURER=\"Unknown\"" "-DUSB_PRODUCT=\"SparkFun Pro Micro\"" -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/cores/arduino -I/Users/zach/Library/Arduino15/packages/SparkFun/hardware/avr/1.1.13/variants/promicro -I/Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire/src /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp -o /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp.o
Compiling libraries...
Compiling library "Wire"
Using previously compiled file: /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/libraries/Wire/Wire.cpp.o
Using previously compiled file: /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/libraries/Wire/utility/twi.c.o
Compiling core...
Using precompiled core: /Users/zach/Library/Caches/arduino/cores/SparkFun_avr_promicro_cpu_16MHzatmega32U4_4de124a9f48fe224b0792db58dc95268/core.a
Linking everything together...
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-gcc -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega32u4 -o /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.elf /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/sketch/temperature-sensor.ino.cpp.o /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/libraries/Wire/Wire.cpp.o /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/libraries/Wire/utility/twi.c.o /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/../../cores/SparkFun_avr_promicro_cpu_16MHzatmega32U4_4de124a9f48fe224b0792db58dc95268/core.a -L/Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1 -lm
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.elf /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.eep
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy -O ihex -R .eeprom /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.elf /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.hex
Using library Wire at version 1.0 in folder: /Users/zach/Library/Arduino15/packages/arduino/hardware/avr/1.8.6/libraries/Wire
/Users/zach/Library/Arduino15/packages/arduino/tools/avr-gcc/7.3.0-atmel3.6.1-arduino7/bin/avr-size -A /Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.elf
Sketch uses 6052 bytes (21%) of program storage space. Maximum is 28672 bytes.
Global variables use 489 bytes (19%) of dynamic memory, leaving 2071 bytes for local variables. Maximum is 2560 bytes.
Performing 1200-bps touch reset on serial port /dev/cu.usbmodem5101
Waiting for upload port...
No upload port found, using /dev/cu.usbmodem5101 as fallback
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "/Users/zach/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
"/Users/zach/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/Users/zach/Library/Arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -patmega32u4 -cavr109 -P/dev/cu.usbmodem5101 -b57600 -D "-Uflash:w:/Users/zach/Library/Caches/arduino/sketches/AF10DD65273260E7F1A2375309BCDCA1/temperature-sensor.ino.hex:i"
User configuration file is "/Users/zach/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/cu.usbmodem5101
Using Programmer : avr109
Overriding Baud Rate : 57600
avrdude: ser_open(): can't open device "/dev/cu.usbmodem5101": No such file or directory
avrdude done. Thank you.
Failed uploading: uploading error: exit status 1
Does anyone have any guidance on how to run a simple Hello World application using Arduino app on Apple Silicon hardware on the SparkFun Qwiic Pro Micro - USB-C (ATmega32U4)?
Thanks,
Zach