I've just got a arduino due board. Everything works fine expect for the programming port. I know it is basically a usb to serial by ATmega16u2. The problem is the designed "auto hardware erase" seems not long enough to erase the main chip ATSAM3X8E. Even if I press the erase button by my finger, it won't erase unless I hold it down for a second. I used a oscilloscope to test the auto erase time by 16u2 and it was about 250 ms, which is longer than recommended 220 ms. So it shouldn't be the problem with the 16u2 and the program inside. Obviously the real thing does not meet the function claimed in their documents (both Arduino and Atmel/Microchip).
I am wondering if I should return the board. It is not a big deal to press the button before every uploading. But it is awful. I am also wondering why this feature is designed. I have used different microprocessors for a couple of years and never have seen a similar erase pin. A similar way is only used to enter the bootloader in stm32. An erase can be done in the bootloader.