Nano Every Device Description (serial port)

Is it possible to change the device description that shows up in the Device Manager?
I have a project that includes 2 Nano Every boards and both do show up as "Arduino NANO Every" in the windows Device Manager, what is a bit inconvenient.
It would be nice to have different names for each board.

Hi @Rik_S. I'm not sure where Device Manager gets the name from.

The USB device of the Nano Every board is produced by the "MuxTO" firmware that runs on the board's ATSAMD11 USB bridge chip. So you can't change the characteristics of the USB device via the Arduino sketch (as you can do with the boards like Leonardo that have the primary microcontroller connected directly to USB).

If the name comes from the driver, then perhaps you could create a custom driver entry that gives a different name depending on the unique serial number of the USB device produced by each board. Otherwise, you would need to upload a modified version of the "MuxTO" firmware to one of the boards to change the properties of the USB device it produces. That is a very advanced endeavor. Instructions are available here:

However, unfortunately some "bit rot" has occurred since the time those instructions were written and the 3rd party "MattairTech SAM D|L|C core for Arduino" boards platform which is required is no longer available due to the MattairTech website having gone offline:


However, I am wondering about your goal. Most people don't regularly use Windows Device Manager. I can't imagine a scenario where the minor inconvenience on the very rare occasion when I do use Device Manager would be enough of a problem to be worth the effort to try to change this.

What is more of a problem is the lack of ability to differentiate between the ports of multiple boards of the same model in Arduino IDE's Tools > Port menu. This is a completely different situation, and a much better one. It is definitely possible, and not too challenging, to cause the port of each board to have a unique name in the Port menu. If that is what you are actually trying to accomplish, we can provide guidance.

If you would like to get some idea about that subject, you can take a look at a similar discussion except for the Pro Micro board rather than the Nano Every:

That is not a great reference because, unlike the Nano Every, the Pro Micro boards don't produce a unique serial number so most of the discussion in that topic was about the task of causing each board to produce a unique identifier. You don't need to worry about all that with the Nano Every, so you would only need to do the equivalent of this change in the boards.txt file entries:

Hi ptillisch,

I am working on a project using 2 Nano Every boards performing different tasks.
Goal is that the application that controls both boards can make a distinction between both boards.
For now the app scans all serial ports and for those with the name "Arduino NANO Every" the correct baudrate is set and an identification request ("who are you?" string) is send to the board.
Depending on what the the NANO Every board replies the app "knows" the funcionality of the board.
Works fine so far, but I want to make the application foolproof in all kind of situations:

  • if a 3rd NANO Every board (maybe on a different baudrate) is connected to the PC
  • if in the future the NANO Every boards are replaced by another board (with different name)

It is possible to have this all checked in the application, but it includes a lot of error checking and timing as I don't want the app to crash on a unknown device on one of the serial ports.

So I thought that giving the board a distinct name could eventually be the easier and more elegant way.
It would also allow to use the device manager to check if both boards are present and on what COM port.
I hope this makes clear what I am trying to do.

Check if it is possible for your application to read the serial number of the USB device. If it can read the device name then it should also be able to read the serial number.

I should be able to read all serial port properties that can be seen in the Device Manager, the serial number doesn't seems to be included.
But apart from that it would't help either te read the serial number as we intend a "mass production" of the setup (well at least a few setups to start with).
So the serial numbers will be different in each setup.

Why do you need 2 Nano Everys? It is a common beginner mistake to think the solution to multiple tasks is multiple boards. There are of course valid reasons for multiple boards, such as them being in physically different locations, but in many cases one board will do the job.

If you want to explore this possibility you will need to explain your project in more detail and explain what lead you to think 2 boards were needed.

I do need 2 boards.
First because they are on physically different locations (each board controls an different apparatus).
Further I would run out of I/O pins with a single board.
And finaly I want to make the project future proof by ensuring that each apparatus can be used on its own or with others.

1 Like

No worries.
I wanted to check as it's a common mistake.

1 Like

You can see it in the "Device instance path" property:

Hi,

there is another option for the program code. See Manual Chapter 7.7.2.2 Serial Number.