Programming methods other than USB

The SAM3X chip has a ROM with a pre-burned bootloader called SAM-BA. You have no way to change it, and it runs by default after an hardware "erase" (done by pushing the erase button on the board).

Arduino IDE uses SAM-BA bootloader to upload the sketch, and a tool called bossac that is the "avrdude-equivalent" for SAM chip.

I did a lot of patches on bossac with the active collaboration of bossac's author Scott Shumate. The patched version can be found on the "arduino" branch of the project GitHub - shumatech/BOSSA at arduino

said that, you have two ways to program the chip (besides JTAG):

  1. Upload through UART using SAM-BA protocol
  2. Upload through USB_CDC_ACM using SAM-BA protocol

SAM-BA automatically detects if an USB host is connected and chooses method 1 or 2.

If you don't want to use bossac, you can try with the official sam-ba uploader software from Atmel: