user65725: Serial link send and recieves Bytes. Serial monitor at Arduino IDE reads it's input as character.
So if I type '0' in serial monitor, then FW will read byte 48 - I don't want to implement some silly translation from character value to int - I want to input NUMBER as byte into serial monitor - how do I do that?
byte inByte = Serial.read(); // read the incoming byte
if(inByte == 1) // do stuff


user65725: Based on comments under question no one seems to really know the answer.
So the short answer is: IT'S IMPOSSIBLE - to use Arduino IDE serial monitor to send raw data.
@Edgar_Bonet submitted hint for linux users
@jsotola suggested to use PuTTY, but no additional info on how to do that. Short glance at settings and I couldn't find the way to achieve raw input.
After some additional googling i found some reading where I found program called RealTerm which does the job.
Simply setup your port on Port card and then hit Change button.
On card Display change Display As From ASCII to your prefered format, such as Hex(space)
Then swich on card Send - type your number into input box left to button Send Numbers and press that button
Thats all
The input box accepts decimal value from 0 to 255, or a hexadecimal value, which are prefixed with either a "0x" or a '$'. Each value is separated by space.
Following line is correctly accepted: "255 0xff 0xFF $ff $FF"
Yet another useful tool is Serial Port Monitor. With this you can observe what is really transmitted on line without relying on the interpretation of you application.
Usage is really simple: click white file icon, or Session > New session or press 
Ctrl+N
Choose port and vizualizer and click Start monitoring... that's it.
I found most useful mode "Dump view"

user38721: I think the comments on your question are quite clear. The important point: any asynchronuous protocoll must include the info either how many bytes are transmitted or which byte is the last one. In "raw data", where each value (0-255) can be a legit data value, there is no way to use bytes for meta data. That's why typically only encoded data is transmitted: you have a small range of byte values that can contain the actual info (alphabet and digits) and you have a bunch of values that are free to be used as meta data. E.g. the commonly used \n as endbyte has the int value 10. How would you transmit the int value 10 in that case?
"I don't want to implement some silly translation from character value to int" - it's not silly, that's the way to go! What about float, boolean or negative values (8-bit, 16-bit, etc.)? You may even want to transmit structured data like python dictionaries. The only way the achieve this is using some kind of parser which knows the protocol.

65725: <p>Serial link send and recieves Bytes. Serial monitor at Arduino IDE reads it's input as character.</p>

<p>So if I type '0' in serial monitor, then FW will read byte 48 - I don't want to implement some silly translation from character value to int - I want to input NUMBER as byte into serial monitor - how do I do that?</p>

<pre><code>byte inByte = Serial.read(); // read the incoming byte
if(inByte == 1) // do stuff
</code></pre>
 65725: <p>Based on comments under question no one seems to really know the answer.</p>

<p>So the short answer is: <strong>IT'S IMPOSSIBLE</strong> - to use Arduino IDE serial monitor to send raw data.</p>

<p>@Edgar_Bonet submitted hint for linux users</p>

<p>@jsotola suggested to use PuTTY, but no additional info on how to do that. Short glance at settings and I couldn't find the way to achieve raw input.</p>

<p>After some additional googling i found some <a href="https://learn.sparkfun.com/tutorials/terminal-basics/real-term-windows" rel="nofollow noreferrer">reading</a> where I found program called <a href="https://sourceforge.net/projects/realterm/" rel="nofollow noreferrer">RealTerm</a> which does the job.</p>

<p>Simply setup your port on <em>Port</em> card and then hit <em>Change</em> button.</p>

<p>On card <em>Display</em> change <em>Display As</em> From ASCII to your prefered format, such as Hex(space)</p>

<p>Then swich on card Send - type your number into input box left to button <em>Send Numbers</em> and press that button</p>

<p>Thats all</p>

<p>The input box accepts decimal value from 0 to 255, or a hexadecimal value, which are prefixed with either a "0x" or a '$'. Each value is separated by space.</p>

<p>Following line is correctly accepted: "255 0xff 0xFF $ff $FF"</p>

<p>Yet another useful tool is <a href="https://www.com-port-monitoring.com/" rel="nofollow noreferrer">Serial Port Monitor</a>. With this you can observe what is really transmitted on line without relying on the interpretation of you application.</p>

<p>Usage is really simple: click white file icon, or Session > New session or press 
Ctrl+N</p>

<p>Choose port and vizualizer and click Start monitoring... that's it.</p>

<p>I found most useful mode "Dump view"</p>
 38721: <p>I think the comments on your question are quite clear. The important point: any asynchronuous protocoll <em>must</em> include the info either <em>how many</em> bytes are transmitted or which byte is <em>the last one</em>. In "raw data", where each value (0-255) can be a legit data value, there is no way to use bytes for meta data. That's why typically only encoded data is transmitted: you have a small range of byte values that can contain the actual info (alphabet and digits) and you have a bunch of values that are free to be used as meta data. E.g. the commonly used <code>\n</code> as endbyte has the int value 10. How would you transmit the int value 10 in that case?</p>

<p>"I don't want to implement some silly translation from character value to int" - it's not silly, that's the way to go! What about float, boolean or negative values (8-bit, 16-bit, etc.)? You may even want to transmit structured data like python dictionaries. The only way the achieve this is using some kind of parser which knows the protocol.</p>
