Serial speeds

Is there a list of the available baud rates for using the HardwareSerial or SoftwareSerial?

software serial I think tops out at 9600, hardware serial can squeeze out 1mbs or more

Hardware serial, see '328 datasheet Table 20-6 for 8 MHz clocks and Table 20-7 for 16 MHz clocks for
examples of common serial rates.

Hardware Serial calculates the baud rate so any number can be used in theory. However in practice some baud rates “fit” better with the internal clock than others, resulting in less errors, especially at high speeds this is important.

The standard Software Serial library uses a table of predefined baud rates, however in the past I found formulas that work pretty well for baud rates up to 70000 baud.
Details see discussion here - -

If you have to communicate between devices sometimes one can reduce the error rate by slightly increasing or decreasing the baud rate (esp higher baud rates)

The hardware serial ports use the system clock as a timebase and divide this down to the baud rate. It is impossible to divide a clock rate like 16MHz down to a precise value like 9600, so there will always be some error in the actual baud rate.

I have had problems communicating at “standard” baud rate multiples above 115200 on an Uno (16MHz) when communicating with faster systems that can manage more accurate (because of a higher starting clock rate) baud rates.

As a rule of thumb, for anything over 115200 on a lower clock rate system like an Uno (by “lower” I mean sub 100MHz) it is best to stick to baud rates that can be easily divided from the system clock. Rates like 460,800 are out, but 500,000 would be perfect.

If you need to use a high baud rate that is one of the “standard(ish)” baud rates and get good accuracy you will need to replace the crystal / resonator with one that can be divided down to the baud rate you desire. Common “baud rate friendly” crystal frequencies are:

    1.8432 MHz, 3.6864 MHz, 4.9152 MHz, 5.5296 MHz, 6.1440 MHz, 7.3728 MHz, 9.8304 MHz
    11.0592 MHz, 12.2880 MHz, 12.9024 MHz, 14.7456 MHz, 16.5888 MHz, 18.4320 MHz, 19.6608 MHz
    20.2752 MHz, 22.1184 MHz, 23.9616 MHz, 25.8048 MHz, 27.6480 MHz , 29.4912 MHz
    31.3344 MHz, 33.1776 MHz, 35.0208 MHz, 36.8640 MHz

An ideal one for running an Uno-like board would be the 14.7456 MHz one, which would give perfect access to the baud rates 921600, 460800, 230400, 115200, 57600, 28800 and 14400, and yet still be in the <=16MHz range with enough speed to be useful.

An ideal one for running an Uno-like board would be the 14.7456 MHz one, which would give perfect access to the baud rates ...

but it would affect timing and functions like micros() ...

..even not applicable for arduino, the crystals above 25MHz are mostly "3rd overtone" one. So such crystals will oscillate at 1/3 of the frequency depicted on their packages (with most mcu's oscillators).