Unable to Flash Duet 6HC Firmware



  • Power is strictly from USB
    The ribbon cable has been disconnected every time I try Bossa
    IO_1 is unpopulated



  • You can also use the Pi itself as the host for bossa (really bossac, the command line version) in order to flash the Duet.

    • Connect a regular USB cable from the Pi to the Duet.
    • It is OK to power Duet from VIN and Pi from ribbon ... OR disconnect ribbon and power the Pi the regular Pi way (micro USB power connector) and let the Pi power the Duet via USB (no VIN on the Duet). Do not do both.
    • SSH to the Pi and install bossa.
    • Then use bossac to flash the Duet. I will get you the exact command this evening when I can pull it out of my printers command history. If you wish to experiment a little, it will be very close to:
      .~/BOSSA/bin/bossac -e -w -v -b image.bin -p /dev/??? -b /opt/dsf/sd/sys/Duet3Firmware_MB6HC.bin
      Where the ??? are the USB port of the Duet3.

    Edit, just remembered, bossac will auto-scan for the port. This command should work:

    .~/BOSSA/bin/bossac -e -w -v -b image.bin -b /opt/dsf/sd/sys/Duet3Firmware_MB6HC.bin



  • Here is an interesting update
    I have been working on the laptop and forgot to turn of Bossa
    At this point, about 2 1/2 hours in, the progress bar just started moving (1% complete, writing page 11)
    Time to go visit my sites, I'll update when I return.


  • administrators

    @tdm418 said in Unable to Flash Duet 6HC Firmware:

    Here is an interesting update
    I have been working on the laptop and forgot to turn of Bossa
    At this point, about 2 1/2 hours in, the progress bar just started moving (1% complete, writing page 11)
    Time to go visit my sites, I'll update when I return.

    It sound like Bossa has chosen a very low baud rate. You may get better results if you provide VIN power to the Duet. Laptops in particular can't usually provide much USB power.



  • @dc42, thank you for your time. I'm sure that you're right. Unfortunately, I'm traveling and don't have a power supply. If I can't get it going utilizing @Danal 's method it will have to wait a few days until I'm home.

    @Danal, thank you too. I am mostly complete with your methods; however, I'm getting errors with make that I can't figure out. Many years since I've used Linux regularly.

    make: wx-config: Command not found
    make: wx-config: Command not found
    CPP BOSSA src/BossaForm.cpp
    In file included from src/BossaForm.cpp:8:
    src/BossaForm.h:11:10: fatal error: wx/artprov.h: No such file or directory
    #include <wx/artprov.h>
    ^~~~~~~~~~~~~~
    compilation terminated.
    make: *** [Makefile:260: obj/BossaForm.o] Error 1

    I did an apt-file search on the artprov.h file and it came up as part of wx3.0-headers. Installed that, still the same error
    Googled a bit, found that the package to install is libwxgtk3.0-dev. So far, so good.

    Another error, missing readline.h. Installed that via guile-2.2-dev
    Appeared to complete the make without error!!!

    At this point, It's pretty late. I removed an entire crew from my project today so it's been pretty miserable. I'll pick this up tomorrow whenever I get a break and report back in.

    Again, @dc42 and @Danal, thank you very much.



  • @tdm418 said in Unable to Flash Duet 6HC Firmware:

    Another error, missing readline.h. Installed that via guile-2.2-dev

    I'm sure you satisfied the dependency via more dependencies (of guile-2.2-dev), but just for the sake of correctness the dependency you actually needed was libreadline-dev

    so for those who find the thread later sudo apt update && sudo apt install -y libwxgtk3.0-dev libreadline-dev will satisfy the build dependencies (for some reason I had issues with apt wanting to use ipv6, so i had to force it to use ipv4)

    edit: howwever, neither dependency is needed if we skip the graphical interface and only build bossac

    apt update && sudo apt install -y git
    git clone https://github.com/shumatech/BOSSA ~/BOSSA
    cd ~/BOSSA
    make bossac
    


  • Interesting. I do not remember needing to install anything beyond the git clone... and I started with the Duet provided image.

    HOWEVER, when I run make right now, it fails for the same thing. I believe I've done an apt-get autoclean since then, and because bossa is not an apt-get package, some of its dependencies were removed. Very interesting.

    Thanks for the research @bearer.



  • Repost of instructions above, with various corrections:

    In a Duet3 +Pi configuration, if you need to re-flash the 6HC main board via BOSSA, you can use the Pi itself as the host for bossa (really bossac, the command line version) in order to flash the Duet.

    (You may wish to pull the latest release before flashing, if so do it via regular sudo apt-get update && sudo apt-get install duetsoftwareframework)

    • Connect a regular USB cable from the Pi to the Duet.
    • It is OK to power Duet from VIN and Pi from ribbon ... OR disconnect ribbon and power the Pi the regular Pi way (micro USB power connector) and let the Pi power the Duet via USB (no VIN on the Duet). Do not do both.
    • SSH to the Pi and install bossa.
      • Do NOT install the apt-get version, it is old and does not work for what we need
      • Install Pre-reqs sudo apt update && sudo apt install -y libwxgtk3.0-dev libreadline-dev
      • Install bossa
    • Then use bossac to flash the Duet. (having already erased it, etc.)
      ~/BOSSA/bin/bossac -e -w -v -b /opt/dsf/sd/sys/Duet3Firmware_MB6HC.bin -R


  • Now I'm getting a failure of "No device found on /dev/ttyACM0"
    I have probed tty devices and there is no ACM* listed
    Tried forcing the ACM0 port on the bossac command line but no go on that either

    I have plugged the Duet board into all of the USB ports and still no ACM* appears
    I am getting the following output from dmesg consistently

    [38775.703615] uart-pl011 fe201000.serial: no DMA platform data
    [41960.637148] usb 1-1.3: new high-speed USB device number 39 using xhci_hcd
    [41960.737392] usb 1-1.3: device descriptor read/64, error -71
    [41960.957390] usb 1-1.3: device descriptor read/64, error -71
    [41961.177147] usb 1-1.3: new high-speed USB device number 40 using xhci_hcd
    [41961.277386] usb 1-1.3: device descriptor read/64, error -71
    [41961.497394] usb 1-1.3: device descriptor read/64, error -71
    [41961.617475] usb 1-1-port3: attempt power cycle
    [41962.277164] usb 1-1.3: new high-speed USB device number 41 using xhci_hcd
    [41962.277464] usb 1-1.3: Device not responding to setup address.
    [41962.497423] usb 1-1.3: Device not responding to setup address.
    [41962.717171] usb 1-1.3: device not accepting address 41, error -71
    [41962.817172] usb 1-1.3: new high-speed USB device number 42 using xhci_hcd
    [41962.817545] usb 1-1.3: Device not responding to setup address.
    [41963.037536] usb 1-1.3: Device not responding to setup address.
    [41963.257174] usb 1-1.3: device not accepting address 42, error -71
    [41963.257521] usb 1-1-port3: unable to enumerate USB device



  • show output from lsusb and dmesg ? (i.e. all of dmesg, after booting, with duet3 attached, use pastebin or google markdown formating and use ```)



  • Be sure you've successfully erased the 6HC board.

    • Power off the 6HC, place a jumper across the ERASE pins and power up to erase the firmware. The Bossa port should appear on the Pi (if it doesn't, try pressing the Reset button).
      • The erase jumper is located in the center of the board near the large CPU chip.
    • Remove the ERASE jumper, and run the bossac command.

  • administrators

    @Danal said in Unable to Flash Duet 6HC Firmware:

    Be sure you've successfully erased the 6HC board.

    • Power off the 6HC, place a jumper across the ERASE pins and power up to erase the firmware. The Bossa port should appear on the Pi (if it doesn't, try pressing the Reset button).
      • The erase jumper is located in the center of the board near the large CPU chip.
    • Remove the ERASE jumper, and run the bossac command.

    Sometimes you also need to either press the Reset button, or power the Duet down and up again.



  • @bearer - Here you go http://dpaste.com/308PSPP
    @Danal - I have erased/reset/power cycled multiple times. If you look at the above pastebin, you will see

    pi@duet3:~ $ ls -l
    total 4
    -rw-r--r-- 1 pi pi 0 Jan 31 20:50 0xf800
    drwxr-xr-x 9 pi pi 4096 Jan 31 06:21 BOSSA

    So it does recognize the Bossa port, still getting the "No device found on /dev/ttyACM0"

    @dc42 - As above, I have performed multiple erase/reset/power cycles


  • administrators

    Have you tried using Bossa on your laptop with VIN power to the Duet, as I suggested in my earlier response?



  • @tdm418 said in Unable to Flash Duet 6HC Firmware:

    @bearer - Here you go http://dpaste.com/308PSPP

    goodie, nothing to suggest it should be a problem with the Pi.

    did the usb serial console work at all before you tried upgrading?

    (👇 right, lets wait for Vin to be applied, I think we all assumed that was done.)



  • @dc42, I am currently traveling to my jobsites so I haven't had access to a power supply. I did borrow a transformer from a site today though, so I'll wire it up and try that method.

    @bearer, I'm glad the pi came up clean. I upgraded the pi before anything else, so I can't answer the question.



  • @dc42 , I wired up the transformer and connected it, tried to flash the firmware again. It's a 12v 2A wall wart. The Bossa port as identified by the Device Manager has configured itself for a much higher throughput - 115k instead of 9600, as it was on USB. I'm assuming that the autoconfigure got it right, 8 data bit, no parity, 1 stop bit, no flow control.
    Same result as before, with USB power only. Bossa has been sitting at 0% complete for about 45 minutes at this point.



  • @tdm418 said in Unable to Flash Duet 6HC Firmware:

    Bossa has been sitting at 0% complete for about 45 minutes at this point.

    Bossa takes less than 2 minutes. If it hasn't progressed, there is very little point in waiting.


  • administrators

    @tdm418 said in Unable to Flash Duet 6HC Firmware:

    @dc42 , I wired up the transformer and connected it, tried to flash the firmware again. It's a 12v 2A wall wart. The Bossa port as identified by the Device Manager has configured itself for a much higher throughput - 115k instead of 9600, as it was on USB. I'm assuming that the autoconfigure got it right, 8 data bit, no parity, 1 stop bit, no flow control.
    Same result as before, with USB power only. Bossa has been sitting at 0% complete for about 45 minutes at this point.

    I think that either there is something very strange about your laptop configuration, or the microcontroller is faulty. Would you like your Duet 3 replaced under warranty?



  • @dc42 , I'm going to keep trying for a bit, but ultimately, yes, the warranty may be necessary.
    I did just try to connect through Bossa under Opensuse and it doesn't recognize any connections at all.
    If there is any troubleshooting that can be accomplished more easily with a Linux box, I'd love to give it a try first



  • @tdm418 said in Unable to Flash Duet 6HC Firmware:

    If there is any troubleshooting that can be accomplished more easily with a Linux box, I'd love to give it a try first

    With an erased, reset, board, powered by USB or VIN, it should show up as /dev/ttyACM0. If it does not, nothing else is going to work.

    This should be true on your SUSE box, or on the Duet provided image for a Pi.



  • So I have been playing with this some more with no positive results, but some results nevertheless.
    For the most part, the Linux Bossa just will not connect at all. Occasionally, it will say that it cannot connect to ttyACM0, which seems to be a recognition of the port. I just tried changing permissions via chmod a+rw /dev/ttyACM0. I am now getting an error message of " Device Unsupported".
    I really appreciate everyone's time in this venture tremendously, @dc42 ,@Danal ,@bearer . If this is just wasting time at this point, I'm fine with the warranty. If there is something else to be done, or something to be learned, I'll keep plugging away as long as possible. I fly home tomorrow afternoon, and can try to replicate this from my desktop. The desktop; however, was initially a lot more reluctant to make any connection at all, so that also might be a dead end.



  • Oh, its always fun to see if you can get something like this back from the brink, so it is really up to you.

    On the other hand, if an erased, reset, board is showing and disappearing as ACM0, it is unlikely to go farther. That boot behavior is pretty much "wired into" those chips, it is literally in ROM, and the USB interface is in hardware. If it doesn't work, something very fundamental is wrong.



  • I have now tried an additional 4 computers - one linux box, one mac, and two windows that are older OSs than mine. Still nothing recognized properly, so I'm afraid its time to move on.

    @dc42 , I purchased this thru Matter Hackers, so I'm assuming warranty it thru them, or is there an alternate that you would prefer?


  • administrators

    Yes, please contact Matter Hackers, and refer them to this post for authorisation to replace your Duet under warranty.


Log in to reply