atmega32u4 custom board can flash bootloader but can't use standard upload

Hello,

I'm bringing up a custom board with an atmega32u4 running at 3.3V with an external 8 MHz crystal.
Using a Teensy3.2 as an 'Arduino as ISP' and 'Adafruit Itsy Bitsy 32u4 3V 8MHz' as the board I can burn the bootloader to the new board without errors. Here is the output:

avrdude: Version 6.3-20190619
         System wide configuration file is "/private/var/folders/3v/w9vvcfps6h531dl523n9qg280000gn/T/AppTranslocation/3FD790AE-BB28-4D00-9446-9A5A06F768DF/d/Teensyduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf
         Using Port                    : /dev/cu.usbmodem15205301
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200

         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/Users/rileymagee/Library/Arduino15/packages/adafruit/hardware/avr/1.4.13/bootloaders/caterina/Caterina-Atmega32u4.hex"
avrdude: writing flash (32442 bytes):

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.

However after burning the bootloader and connecting to the new board using USB I do not see any Serial Port connections to select the new device.

I know that the USB pathway on the new device is OK because I can upload 'DigitalReadSerial' and I can connect directly to the custom board using USB and monitor the serial output of 'DigitalReadSerial'.

However, after uploading the bootloader I would like to be able to flash the M32U4 directly using the USB. I have not been able to do this and I have two different error observations:

  1. After flashing bootloader the port connection is not available to flash, I have also tried uploading and pressing reset button twice after compiling to enter bootloader mode, no change with error code below:
Sketch uses 3886 bytes (13%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes of dynamic memory.

PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseAE2SoundLink-SPPDev, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseAE2SoundLink-SPPDev, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.BoseAE2SoundLink-SPPDev, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.BoseAE2SoundLink-SPPDev, } => {}
Couldn't find a Board on the selected port. Check that you have the correct port selected.  If it is correct, try pressing the board's reset button after initiating the upload.
  1. I noticed if I flash 'Blink' using Arduino as ISP (which works fine) I can see the LED on pin 13 flash at 0.5Hz. However when I plug in the USB directly to the board I see the LED on pin 13 flash rapidly for about 25 seconds, followed by flashing at about 1Hz. I also see a port 'dev/cu.usbmodem14201 which is available for about 10 seconds, and is not visible for 10 seconds, repeating. If I try the same test as above (flash directly to target using USB and press reset twice after the code compiles) I will see the following:
avrdude: Version 6.3-20190619
         Using Port                    : /dev/cu.usbmodem14201
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
avrdude: ser_drain(): read error: Device not configured
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :
         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: ser_send(): write error: Device not configured
avrdude: ser_drain(): read error: Device not configured

avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.
avrdude: ser_send(): write error: Device not configured
avrdude: ser_recv(): read error: Device not configured
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: ser_close(): can't reset attributes for device: Device not configured

avrdude done.  Thank you.

the selected serial port 
 does not exist or your board is not connected

Thanks for reading through all of this, appreciate any advice.

Arduino Pro Micro bricked or can it be saved? - Installation & Troubleshooting - Arduino Forum has the solution, something about switching to Sparkfuns Atmega32u4 3.3V 8Mhz bootloader fixed the issue where the Adafruit bootloader did not.

This works really well for us, thank you! myccpay