Flashing firmware on Mac OS X

  • Moderator

    I've seen a couple of people having problems with flashing firmware to Duet Wifi/Ethernet/Maestro on Apple Mac OS X, at least using the GUI version of BOSSA. Should you have inadvertently pressed the 'erase' button on your Duet, or have some other need to flash the firmware, you would probably end up having to do it using a Windows PC [shudder!] to flash the firmware. However, I seem to have got this working on my MacBook Pro (Retina, 15-inch, Late 2013), running macOS Mojave (10.14.5).

    First of all, you need to use BOSSA (Windows and Mac only - https://github.com/shumatech/BOSSA/releases), as there's no Mac version of SAM.BA (Windows and Linux only - https://www.microchip.com/DevelopmentTools/ProductDetails/Atmel SAM-BA In-system Programmer). The version of the command line tool 'bossac' that ships with the Arduino IDE supports the SAM3X8E in Duet 0.6/0.85, but not the SAM4E8E of the Duet Wifi/Ethernet, or the SAM4S8C of the Maestro.

    However, once you have downloaded the .dmg and copied BOSSA to your applications folder (and allowed it to run in Security settings), it does not work or crashes when launched. This thread shows a common error message: How did the firmware update evaporate from my board?, relevant part:

    Application Specific Information:
    dyld: launch, loading dependent libraries
    Dyld Error Message:
    Library not loaded: /usr/local/opt/libpng/lib/libpng16.16.dylib
    Referenced from: /Applications/BOSSA.app/Contents/MacOS/bossa
    Reason: image not found

    The main problem seems to be that a dependent dynamic library (libpng, libjpeg) has not been included in the current version (BOSSA 1.9.1 at time of writing), and either an old version is bundled with Mac OS X, or it is missing. It may also be that you have installed software that causes an old version of the library to be installed. There's a discussion about the issue here, which also provides the solution: https://github.com/shumatech/BOSSA/issues/76#issuecomment-450497888

    To fix this, first install (or update) Brew: https://brew.sh/
    Then run 'brew install wxwidgets' which will install compatible versions of libpng/libjpeg/libtiff in /usr/local/opt and will allow the GUI version of BOSSA to launch correctly.

    I've only tested this in Mojave, but I think it should work with older Mac OS X versions too. If anyone can try this out and see if it works, I'll update the documentation. Unfortunately, I didn't try the command line version of bossac (v1.9.1) before doing this, but that is also working for me without issue. I usually copy 'bossac' into the same folder as the firmware I want to update, cd to that folder in terminal, and run it from there. But having the GUI version working is nice!


  • Moderator

    So that's why bossa crashes on launch for me now.

  • @droftarts said in Flashing firmware on Mac OS X:


    Thank you so much for this. Saved me a massive headache trying to flash my paneldue v3.0 5".

  • With Catalina works too 🙂

  • Thank you. This is still an issue for the version I downloaded on 2020-03-20 and tried to run on Catalina (10.15.3).

  • @droftarts said in Flashing firmware on Mac OS X:

    Windows PC [shudder!]

    I knew I liked you for a reason.

  • Moderator

    @Danal said in Flashing firmware on Mac OS X:

    I knew I liked you for a reason.

    Aww, you're making me blush!

    On topic, I've tried every combination of things to flash Duet 3 on Mac, but have not succeeded. I ended up resorting to a Windows 7 PC (which I do have, just don't like to admit it), where it flashed first time, no problem. I think the Mac version of Bossa is to blame; there's an issue already raised on Github about it, that I added to: https://github.com/shumatech/BOSSA/issues/106
    Please try flashing with Mac and post to that issue; perhaps if enough people do, they'll fix it!


  • is it the same if you use the command line version bossac ? only skimmed the thread, but looked to be graphics related in the top post

  • @droftarts I am running macOS Catalina and can not run bossa at all!

    This is the message I get.
    Process: bossa [47376]
    Path: /Applications/BOSSA.app/Contents/MacOS/bossa
    Identifier: ShumaTech.BOSSA
    Version: 1.0 (1.1)
    Code Type: X86-64 (Native)
    Parent Process: ??? [1]
    Responsible: bossa [47376]
    User ID: 501

    Date/Time: 2020-09-19 13:54:36.827 +0400
    OS Version: Mac OS X 10.15.6 (19G2021)
    Report Version: 12
    Anonymous UUID: 0882F234-69BA-C761-E39C-9AFCC0E1E455

    Time Awake Since Boot: 760000 seconds

    System Integrity Protection: enabled

    Crashed Thread: 0

    Exception Type: EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY

    Termination Reason: DYLD, [0x1] Library missing

    Is there a way to boot the firmware from a sd card?
    Or any other way to re-install a new firm ware version on my duet 2 wifi?

  • Had the same problem with Mojave. You need to compile Bossa on your MAC.


  • Moderator

    @Cwitsch said in Flashing firmware on Mac OS X:

    Termination Reason: DYLD, [0x1] Library missing

    I think it’s the same problem, with the dependent dynamic library (libpng, libjpeg) missing from Bossa. Try the homebrew instructions, though it’s probably not going to flash a Duet 3. Try @MartinNYHC (thanks!) linked, fixed, compiled version, which I’m going to try at the next opportunity, as I’m still on Mojave. I guess it should work on Catalina too?


  • @droftarts said in Flashing firmware on Mac OS X:

    I think it’s the same problem, with the dependent dynamic library (libpng, libjpeg) missing from Bossa.

    bossac from the commandline shouldn't need them libraries? might be worth at try if bulding from source isn't an option

Log in to reply