serial.write(0x00); gives an error

How is 'byte' an overloaded term ? It has precisely one meaning.

Where as 'char' for example is very problematical. Since someone decided that 127 chars were not
enough, char has become a nightmare which I avoid as much as possible, because you can never
tell what it means any more.