Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MiniCore Burn Bootloader - Not Working on M3 MacBook Pro #294

Open
takide opened this issue Mar 30, 2024 · 5 comments
Open

MiniCore Burn Bootloader - Not Working on M3 MacBook Pro #294

takide opened this issue Mar 30, 2024 · 5 comments

Comments

@takide
Copy link

takide commented Mar 30, 2024

Burning the MiniCore bootloader does not work with the M3 MacBook Pro. I believe this issue may be caused by the USB-C to USB adaptor or some other hardware issue on Apple silicon. Previously, I was able to burn the MiniCore boot loader without any issues on a very old 2013 MacBook Pro (has USB-A ports). Burning the boot loaders works perfectly fine in windows too. Once the boot loader is burned using another computer, I can flash programs just fine using the M3 MacBook Pro.

Here is the Arduino console output when I try to burn the bootloader using the M3 MacBook Pro:

avrdude: Version 7.2-arduino.1
         Copyright the AVRDUDE authors;
         see https://github.com/avrdudes/avrdude/blob/main/AUTHORS

         System wide configuration file is /Users/aaron/Library/Arduino15/packages/MiniCore/hardware/avr/3.0.1/avrdude.conf
         User configuration file is /Users/aaron/.avrduderc
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem1101
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega8
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : possible i/o
         RETRY pulse                   : SCK
         Serial program mode           : yes
         Parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                           Block Poll               Page                       Polled
           Memory Type Alias    Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- -------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom                  4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
           flash                  33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
           lfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           hfuse                   0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           lock                    0     0     0    0 no          1    1      0  4500  4500 0x00 0x00
           signature               0     0     0    0 no          3    1      0     0     0 0x00 0x00
           calibration             0     0     0    0 no          4    1      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 version 1.x firmware

avrdude stk500_getparm() error: protocol expects OK byte 0x10 but got 0x14

avrdude stk500_getparm() error: protocol expects sync byte 0x14 but got 0x02

avrdude stk500_getparm() error: protocol expects sync byte 0x14 but got 0x10
         Hardware Version: 61
         Firmware Version: 48.48
         Topcard         : STK502
         Vtarget         : 1.8 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us
avrdude stk500_initialize() error: protocol expects OK byte 0x10 but got 0x01
avrdude main() error: initialization failed, rc=-1
        - double check the connections and try again
        - use -B to set lower the bit clock frequency, e.g. -B 125kHz
        - use -F to override this check
avrdude stk500_disable() error: protocol expects sync byte 0x14 but got 0x10

avrdude done.  Thank you.

Failed chip erase: uploading error: exit status 1

Here is the hardware information for the MacBook Pro having this issue:
M3 MacBook Pro (16in Nov-2023 model, M3 Pro CPU, Sonoma 14.3.1)

This is probably a very niche use case, but I think this should be published somewhere as a known issue.

@TheZeroBeast
Copy link

I second this, I have the same model M3 MacBook Pro and have to pull out my windows machine each time I need to burn boot loaders. Would love to not have to swap machines.

@MCUdude
Copy link
Owner

MCUdude commented Apr 26, 2024

I second this, I have the same model M3 MacBook Pro and have to pull out my windows machine each time I need to burn boot loaders. Would love to not have to swap machines.

@TheZeroBeast which programmer are you using that's not working with your M3-based Mac? And can you turn on verbose upload in the IDE settings and pate the entire Avrdude output when a failed bootloader attempt is performed?

@TheZeroBeast
Copy link

An arduino nano as ISP. I’ll try get a verbose log to share. Haven’t done any avrdudeIDE before.

@MCUdude
Copy link
Owner

MCUdude commented Apr 26, 2024

@TheZeroBeast but you are able to upload using your M3 Mac once the bootloader has been flashed by another computer, using the same Arduino Nano as ISP programmer?

@TheZeroBeast
Copy link

@MCUdude, once I have the bootloader I connect direct with a usb to serial interface and the MacBook M3 does fine with that in Arduino.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants