Is my board faulty?

Hi, yesterday I recieved my Arduino MKR Vidor 4000 board and today I got round to trying it out as I had to get a micro HDMI cable for it.

All I did was try the VidorDrawLogo example. I uploaded it unchanged and it seemed to work fine after I figured out it needed to have the serial monitor running to allow it to initialize.

So I decided to make a very minor change to the example, just to see if the visuals on the TV it’s plugged in are indeed being drawn by the sketch, I simply changed the TM to PM. I tried uploading that.

Now it seems to keep switching COM ports during uploads. After powering it up it is configured to COM 9, as soon as the upload starts it switches to COM 10. This does not seem to stop the upload but it does upload at the slowest speed available, 1200 baud!

It also stops uploading at 34% with an error.

I have included a text file with the compiler output with full verbose error reporting enabled for both compile and upload.

I need to know fast if I can fix this or if the board is faulty so that I can return it.

CompilerOutput.txt (104 KB)

I think I fixed it. I loaded the SAMD Update Bootloader 'example' and it uploaded fine. Since then I have only had it fail to do an upload once.

First of all, I should say I don’t have experience with the Vidor, or any of the other SAMD boards. However, I do have experience with the ATmega32U4-based boards, which I believe use a similar system.

The upload process:

The Arduino IDE opens a serial connection at 1200 baud with the port you have selected from the Tools > Port menu:

Forcing reset using 1200bps open/close on port COM9

The Arduino board sees this 1200 baud connection as a signal and does a watchdog reset.

The Arduino IDE waits for a new serial port to appear:

PORTS {COM1, COM3, COM9, } / {COM1, COM3, } => {}

The bootloader on the Arduino board runs and this causes a new virtual COM port to be enumerated on your computer.

The Arduino IDE sees the new port and starts an upload to it at the speed specified in boards.txt:

PORTS {COM1, COM3, } / {COM1, COM3, COM10, } => {COM10, }
Found upload port: COM10
C:\Users\galbi\AppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0-arduino3/bossac.exe -i -d --port=COM10 -I -U true -i -e -w C:\Users\galbi\AppData\Local\Temp\arduino_build_831768/VidorDrawLogo.ino.bin -R 
Set binary mode
version()=v2.0 [Arduino:XYZ] Jun 20 2018 16:38:19
Connected at 921600 baud

This is a different process from the one used on the Arduino boards without native USB because on those boards the reset is triggered on a serial connection by DTR on the USB to TTL serial chip.

So the upload to your board is not at 1200. It’s actually at 921600 baud.

As for the upload error, I don’t have an explanation, other than that it’s not related to the 1200 baud thing.

Port number changing in Windows is normal as boot loader exposes a different descriptor than application (serial number is slightly different) and windows assigns a different company port for each serial it seems, even if it's on the same physical USB port or even if you plug the same serial to different ports.
As it has been explained the 1200 band thing is just a trick to ask the board to return to bootloader... Transfer is handled at full speed... It's just taking some time as it needs to load also fpga image.


One more thing to try. Most people don't notice that sketch waits for serial port to be opened. If you don't comment out the while serial you have to open serial terminal for the sketch to run