I’ve done several projects combining Arduinos and custom-coded .Net software. In almost all of these projects, I’ve used Arduino Leonardo. With Leonardos, I’ve always had flawless serial communication.
Recently, I’ve experimented with an Arduino Mega, which, like the Leonardo handles the serial comms natively.
But I’m running into a bit of a problem. The Leonardo uses an ATmega32U4 USB-to-TTL serial chip, and as I mentioned earlier, it results in flawless communication with my .Net apps. However, the Arduino Mega uses the ATmega16U2 USB-to-TTL serial chip, and the serial comms are not reliable.
I’m working on revamping how I handle the serial comms in .Net, but it will take time to iron out some problems.
In the meantime, I’m considering an Adafruit Grand Central M4 Express as a drop-in replacement for the Arduino Mega.
My question is, does anyone know what specific USB-to-TTL serial chip is used on the Grand Central?
That is incorrect. The sketch runs on the Arduino Mega's ATmega2560 microcontroller. That microcontroller does not have native USB capabilities, so it requires a separate USB to TTL serial adapter chip. In the case of the official Mega, the ATmega16U2 is used.
That is different from the Leonardo. The Leonardo's ATmega32U4 microcontroller has native USB capability, so a single microcontroller runs your sketch and also communicates with the computer over a CDC serial port.
That is not really correct. The Leonardo communicates directly with the computer via a CDC serial port.
One thing to note is that when you open the Mega's serial port, the board resets. This means that if you try to communicate with the board immediately after opening the port, it will not be received by the Mega because it is still initializing. The Leonardo does not have this reset on serial connection behavior.
It doesn't have one. Like the Leonardo, the ATSAMD51P20A microcontroller on the Grand Central M4 has native USB, so there is no need for a USB-to-TTL serial chip.