All data within serial communication is transferred via blocks or frames. So, let us mention some of the details on each of these frame pieces. The amount of data in each packet can be set to anything from five to nine bits. A standard data sets is a basic eight bit byte, but there are also other sizes used. Sometimes a seven bit data size can be more efficient than eight, especially if you're just transferring seven bit ASCII characters. After agreeing on a character length, both serial devices also have to agree on the endogenous of that data. Is data sent from the most significant bit to list or vice versa? If it was not stated otherwise, you can usually assume that data is transferred least significant bit first. Synchronization bits are the two of this special bits transferred with each frame of data. They're the start bit and the stop bit. Through to their name, these bits mark the beginning and the ending of a packet. There is always only one start bit, but the number of stop bits is configurable to either the one or two. Though it is common to have one stop bit. The start bit is always indicated by an idle data line going from one to zero, while the stop bit will switch the line back to the idle state by holding the line at one. Parity is a form of very simple low level error checking. It comes in two flavors: odd or even. To practice with parity bits of five to nine bits of the data byte, edit and the evenness of the sum decides whether the bit is set or not. Parity is optional and not widely used. It can be helpful for transmitting across noisy mediums, but it also slows down your data task for a bit and requires both sender and receiver to implement error handling. Usually, failed data must be resent, which is not always useful for us. In most cases, we can use the standard protocol of data transfer. It uses 9,600 bauds, Sb3, eight data bits, no parity, and one stop bit. So, what would a packet of two dataframes look like? So, take a look at this slide. A device transmitting the ASCII characters O and K, would have to create two packages of data only for example. The ASCII value of O, whose uppercase is 79, which breaks down in ten eight bit, binary value of 0100 and four ones. While Ks binary value is 01001011. All that's left are appendant same bits. It is not stated but is assumed that data is transferred least significant bit first. Notice how each of the two bytes is sent as it read from right to left. Since we're transferring at 9,600 bits per second, the time spent on each of those bits high or low is one divided by 9,600 bits per second or approximately 100 microseconds per one bit. For every byte of data transmitted, there are actually 10 bits being sent. A start bit, eight data bits, and the stop bit. So, at 9,600 bits per second, we're actually sending 9,600 bits per second or 916 bytes per second. Arduino board sends data in different data formats. But what can we say about the interpretation in MATLAB workspace. So, MATLAB provides 15 fundamental data types. Every datatype, stores data that's in the form of a matrix or an array. The size of this matrix or array is a minimum of zero by zero, and up to a matrix or array of any size. MATLAB doesn't require any type of decoration or dimension statements. Whenever MATLAB encounters a new variable name, it creates the variable and allocates appropriate memory space. Numeric classes in MATLAB includes, signed and unsigned integers, and single precision and double precision floating point numbers. By default, MATLAB stores all numeric values as a double precision floating-point. Character arrays and stream carets provide storage for text data in MATLAB. A character array is a sequence of characters, just as a numerical array is a sequence of numbers. A typical use, used to store short pieces of text as character vectors. Stream carets is a container for pieces of text. Stream carets provide a set of function to work with text. That's all about the main types of data. MATLAB provides various functions to convert the value from one data type to another. The most useful conversion for us is a Bin2dec which interprets a value in brackets, which represents a binary number, and it returns to the equivalent decimal number. This value must represent a non-negative integer. Function Bin2dec ignores any space characters in the input text. All other conversion functions work the same way. So, you can see them by your own in our course book. So, that's all about main datatypes in MATLAB workspace, which I wanted to discuss.