Hello MorganS,
The 8-bit signed type which you are looking for is called int8_t, not char. You would more often see the unsigned version uint8_t but each of those 8/16/32/64 bit types has both signed and unsigned versions.
Which exact part are you referring to? I mean, "char" is a signed 8-bit type on Arduino Uno/Nano.
"byte" would be the unsigned one. And what's wrong with receiving "char"'s on the serial interface?
I'm on Arduino Uno (clone), basically, but also testing on Nano (clones).
You're probably right about mentioning the type of serial interface. The original Uno has that Atmega 16U2 (or so), while my Uno clones have something else - see here:
I just found out that this chip has a 576 byte send and 576 byte receive buffer.
Still it looks surprising that it will first send 1 or 2 chars only, then 2x 6 chars, then the rest.
Test results stem from this Uno clone.
The el-cheapo Nano clone has the chinese CH340G, and I also run with a separate FTDI232-based Uno shield directly attached to pins 0/1 in the final device. So there may surely be differences in handling from the hardware side.
But overall, all these chips do not have a side channel to communicate with the Atmel 328P, right?
So the Serial.available() command can still only tell what it has seen coming in over pins 0/1 ...
Obviously, my assumption is wrong that when sending a continuous stream, or hunk of data, over the serial interface, it will be received equally continuously by the Arduino, and can be handled without leaving the receiving routine. Maybe I should try to prolong the receiving routine artificially to take at least one additional character duration @115200Bd, after one char has been received. So actually I'm rather too fast than too slow.
BR
stargar