Can't get it to work on Windows 10

I have both a desktop running windows 8.1 and a laptop running windows 10, both running the 1.8.5 version of Arduino. I’ve installed the M2 and Due libs on both. However, when I try to compile and upload ‘Blink’ on the Windows 10 laptop, I get this error:

Write 25090 bytes to flash (98 pages)
<< nothing uploads >>
SAM-BA operation failed.

I’ve verified that the board and ports are correct (Macchina M2 and Due Program port) I’ve tried to update the device driver, but it tells me that I’m using the most recent one. Blink works just fine on the Windows 8.1 machine. Anyone else seen this and can suggest a fix?

The complete error is this with verbose turned on:
(there are additional reads and writes prior to this point.)
Boot Flash : false
Erase flash
readWord(addr=0x400e0a08)=0x1
readWord(addr=0x400e0c08)=0x1
writeWord(addr=0x400e0a04,value=0x5a000005)
readWord(addr=0x400e0a08)=0x1
readWord(addr=0x400e0c08)=0x1
writeWord(addr=0x400e0c04,value=0x5a000005)
done in 0.031 seconds

Write 25080 bytes to flash (98 pages)

[ ] 0% (0/98 pages)
write(addr=0x20002000,size=0x100)
writeWord(addr=0x20001028,value=0x80000)
writeWord(addr=0x2000102c,value=0x20002000)
readWord(addr=0x400e0a08)=0x1
readWord(addr=0x400e0c08)=0x1
writeWord(addr=0x20001024,value=0x20001001)
go(addr=0x20001020)
writeWord(addr=0x400e0a04,value=0x5a000001)
SAM-BA operation failed
write(addr=0x20002100,size=0x100)
An error occurred while uploading the sketch

Okay, it looks like I fixed this problem. I tried another usb port and it worked. FYI, one other difference between the two machines is that the laptop only has USB 3.0 ports. Since that’s supposed to be backwards compatible, I didn’t think that was an issue.
Also I noticed something that’s probably in the docs, but I thought I’d mention it here. I know that the Due has a programming port and a usb port and I noticed that the Macchina only has one usb port. While playing around with this, I figured out that, in order for it to work, the device manager has to say “Bossa programming port.” At least for me, when a program runs, it switches to “Due native port” (or something similar to that) and the port number changes. I’m assuming that’s so when a program runs, you can connect to it using the IDE’s terminal.

I routinely use the M2 on a machine with only USB3 and USB-C (which I think is USB 3.2) ports and it works fine.

The M2 has only the “native” port from the Arduino Due, that’s true. The native port will take two different states. When it is ready to program it will show up as Bossa programming port. When the sketch has flashed it will switch to Due Native Port just like you saw. This should be automatic though. That is, you should be able to upload a sketch when it says “Due Native Port” and it should automatically switch over to Bossa Programming Port, flash, then switch back. This might not work really well the first time as Windows will have to search for drivers but once you’ve done it before for that USB port it ought to go more smoothly. Window is idiotic and if you move to a different USB port on your PC it will probably need to set up things all over again.

Yeah, I’m not seeing it automatically switch over to the programming port when it’s in native mode and I upload a sketch. Not a big deal for me, I just have to reset the Macchina. If I don’t do that the upload fails and says that the port’s not available. In my case, the Bossa port is COM5 and the native Due port is COM6; I assumed that’s why I was getting the error.