Flashing firmware on Mac OS X

  • 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!


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

Log in to reply