{"page":"<link rel=\"stylesheet\" href=\"https://lessonplanet.com/assets/packs/css/resources-572d6a42.css\" />\n<link rel=\"stylesheet\" href=\"https://lessonplanet.com/assets/packs/css/lp_boclips_stylesheets-f4d0de30.css\" media=\"all\" />\n<div data-title='TTL Serial Communication Protocol Explained | Part 3' data-url='/boclips/videos/62a0e4868b9cc0130f1cb6ed' data-video-url='/boclips/videos/62a0e4868b9cc0130f1cb6ed' id='bo_player_modal'>\n<div class='boclips-resource-page modal-dialog panel-container'>\n<div class='react-notifications-root'></div>\n<div class='rp-header'>\n<div class='rp-type'>\n<i aria-hidden='true' class='fai fa-regular fa-circle-play'></i>\nVideo\n</div>\n<h1 class='rp-title' id='video-title'>\nTTL Serial Communication Protocol Explained | Part 3\n</h1>\n<div class='rp-actions'>\n<div class='mr-1'>\n<a class=\"btn btn-success\" data-posthog-event=\"Signup: LP Signup Activity\" data-posthog-location=\"body_link_boclips\" data-remote=\"true\" href=\"/subscription/new\"><span><span>Get Free Access</span><span class=\"\"> for 10 Days</span><span>!</span></span></a>\n</div>\n</div>\n</div>\n<div class='rp-body'>\n<div class='rp-info'>\n<div aria-label='Hide resource details' class='rp-hide-info' role='button' tabindex='0'>&times;</div>\n<i aria-label='Expand resource details' class='rp-expand-info fai fa-solid fa-up-right-and-down-left-from-center' role='button' tabindex='0'></i>\n<i aria-label='Compress resource details' class='rp-compress-info fai fa-solid fa-down-left-and-up-right-to-center' role='button' tabindex='0'></i>\n<div class='rp-rating'>\n<span class='resource-pool'>\n<span class='pool-label'>Publisher:</span>\n<span class='pool-name'>\n<span class='text'><a data-publisher-id=\"30358947\" href=\"/search?publisher_ids%5B%5D=30358947\">Programming Electronics Academy</a></span>\n</span>\n</span>\n</div>\n<div class='rp-description'>\n<span class='short-description'>Let’s look at a concrete example. The ASCII character capital G is represented by the bits 0100 0111. If we were to monitor the logic levels of the TX pin on the Arduino UNO while we are printing a capital G using Serial.begin() and...</span>\n<span class='full-description hide'>Let’s look at a concrete example. The ASCII character capital G is represented by the bits 0100 0111. If we were to monitor the logic levels of the TX pin on the Arduino UNO while we are printing a capital G using Serial.begin() and Serial.print(), void setup() { Serial.begin(9600); } void loop() { Serial.print(\"G\"); } it would look something like this… Serial communication packet So what’s going on here? THE START BIT You’ll notice that at the start of the transmission, the logic level is HIGH. This is the default logic level of the TX pin when not sending a message. When the sender is ready to send information, it starts by bringing its TX pin LOW – this is the start bit. The receiver is on the lookout for this and when it sees the logic level go from HIGH to LOW on its RX pin, this state change tells the receiver “Hey, a message is about to come in!”. The Receiver, based on the baud rate, then begins to read in the message one bit at a time that is coming in at its RX pin. The Receiver waits one and a half cycles to start sampling the line after it sees the initial state change. Why does it wait one and a half cycles, and not just one cycle? Well, by waiting 1 and a half cycles, it is able to sample right in the middle of the incoming signal. So it can be sure what it reads is the correct signal. Say you are pounding nails into studs to hang drywall – you want to get your nail right into the center of the stud to get the best quality connection. The receiver wants to sample right in the middle of the transmission to get the best guarantee that what it measured was the true signal. THE MESSAGE AKA DATA FRAME Referring back to the diagram above, now the Receiver is actually reading in the message. The message portion of the transmission is called the data frame. The first time it samples, the logic level is HIGH. If you imagine the Receiver being some guy with a clipboard, he’d be like, “Hey, let me mark a 1 down.” The next time the Receiver samples, it’s still HIGH. That’s another 1. After that, it’s still HIGH, that’s another 1. Then it goes LOW, the Receiver would read that in as a 0. And this keeps up for 8 bits. You’ll notice that the order of bits in the capital G is reversed – this is because the serial protocol sends the least significant bit first. This is how it was done long ago to confuse people like me. Well OK, I’m sure there is some valid reason for sending the least significant bit first, but hey – it’s still confusing even when you know it. THE PARITY BIT Next comes an optional parity bit. The default serial communication protocol for Arduino using Serial.begin() does not send a parity bit, but we’ll talk about it shortly, because I think it is pretty neat. The term parity refers to whether a number is even or odd. If you asked me the parity of the number 12, the answer would be even. Having a parity bit is a way for the receiver to check if the information received in the data frame was corrupted – that is, parity bits are for error checking. When a parity bit is used, both the sender and receiver agree ahead of time on either even or odd parity. The parity is determined by counting the number of bits with the value 1 in the data frame including the parity bit. Now I know that sounds super confusing, but it is deceptively simple. Say for example, the sender and receiver agree to have an even parity. This means all the 1’s in the data frame PLUS the parity bit need to equal an even number. So if the data frame has three 1s, then the sender will set the parity bit to a 1 as well – this way, the total number of ones is 4, which has even parity.</span>\n</div>\n<div class='action-container flex justify-between'>\n<button aria-expanded='false' aria-label='Read more description' class='rp-full-description' type='button'>\n<i class='fai fa-solid fa-align-left'></i>\n<span id='read_more'>Read More</span>\n</button>\n<div class='rp-report'>\n</div>\n</div>\n<div aria-labelledby='resource-details-heading' class='rp-info-section'>\n<h2 class='title' id='resource-details-heading'>Resource Details</h2>\n<div class='rp-resource-details clearfix'>\n<div class='detail'>\n<dl>\n<dt>Curator Rating</dt>\n<dd><span class=\"star-rating\" aria-label=\"4.0 out of 5 stars\" role=\"img\"><i class=\"fa-solid fa-star text-action\" aria-hidden=\"true\"></i><i class=\"fa-solid fa-star text-action\" aria-hidden=\"true\"></i><i class=\"fa-solid fa-star text-action\" aria-hidden=\"true\"></i><i class=\"fa-solid fa-star text-action\" aria-hidden=\"true\"></i><i class=\"fa-regular fa-star text-action\" aria-hidden=\"true\"></i></span></dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt class=\"educator-rating-title\">Educator Rating</dt><dd><div class=\"educator-rating-details\" data-path=\"/educator_ratings/rrp_data?resourceable_id=193360&amp;resourceable_type=Boclips%3A%3AVideoMetadata\"><span class=\"not-yet-rated\">Not yet Rated</span></div></dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Media Length</dt>\n<dd>8:09</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Grade</dt><dd title=\"Grade\">Higher Ed</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Subjects</dt><dd><span><a href=\"/search?keywords=founding+the+13+colonies&amp;search_tab_id=1&amp;subject_ids%5B%5D=378077\">STEM</a></span></dd><dd class=\"text-muted\"><i class=\"fa-solid fa-lock mr5\"></i>3 more...</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Media Type</dt><dd><span><a href=\"/search?keywords=founding+the+13+colonies&amp;search_tab_id=2&amp;type_ids%5B%5D=4543647\">Instructional Videos</a></span></dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Source:</dt>\n<div class='preview-source' data-animation='true' data-boundary='.rp-info' data-container='.rp-resource-details' data-html='false' data-title='Got questions about Arduino? We have the best Arduino tutorials, lessons, and courses that you&#39;ll find, presented in a way you’ll love.  At Programming Electronics Academy we are all about teaching programming and electronics with Arduino.' data-trigger='hover focus'>\n<span>Programming Electronics Academy</span>\n<i aria-hidden='true' class='fa-solid fa-circle-info channel-tooltip-icon' id='channel-tooltip'></i>\n</div>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Date</dt>\n<dd>2021</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<i aria-hidden='true' class='fai fa-solid fa-language'></i>\n<dt>Language</dt><dd>English</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Audiences</dt><dd><span><a href=\"/search?audience_ids%5B%5D=371079&amp;keywords=founding+the+13+colonies&amp;search_tab_id=1\">For Teacher Use</a></span></dd><dd class=\"text-muted\"><i class=\"fa-solid fa-lock mr5\"></i>2 more...</dd>\n</dl>\n</div>\n<div class='detail'>\n<dl>\n<dt>Usage Permissions</dt><dd>Fine Print: Educational Use</dd>\n</dl>\n</div>\n</div>\n</div>\n<div aria-labelledby='additional-materials-heading' class='rp-info-section'>\n<h2 class='title' id='additional-materials-heading'>Additional Materials</h2>\n<div class='additional-material'>\n<i aria-hidden='true' class='fai fa-solid fa-lock'></i>\n<a class=\"text-muted\" title=\"Video Transcript\" data-html=\"true\" data-placement=\"bottom\" data-trigger=\"click\" data-content=\"<div class=&quot;text-center py-2&quot;><a class=&quot;bold&quot; href=&quot;/auth/users/sign_in&quot;>Sign in</a> or <a class=&quot;bold text-danger&quot; data-posthog-event=&quot;Signup: LP Signup Activity&quot; data-posthog-location=&quot;body_link_boclips&quot; data-remote=&quot;true&quot; href=&quot;/subscription/new&quot;>Join Now</a></div>\" data-title=\"Get Full Access\" data-container=\"body\" rel=\"popover\" tabindex=\"0\" href=\"/subscription/new\">Video Transcript</a>\n</div>\n<div class='additional-material'>\n<i aria-hidden='true' class='fai fa-solid fa-lock'></i>\n<a class=\"text-muted\" title=\"Video Preview\" data-html=\"true\" data-placement=\"bottom\" data-trigger=\"click\" data-content=\"<div class=&quot;text-center py-2&quot;><a class=&quot;bold&quot; href=&quot;/auth/users/sign_in&quot;>Sign in</a> or <a class=&quot;bold text-danger&quot; data-posthog-event=&quot;Signup: LP Signup Activity&quot; data-posthog-location=&quot;body_link_boclips&quot; data-remote=&quot;true&quot; href=&quot;/subscription/new&quot;>Join Now</a></div>\" data-title=\"Get Full Access\" data-container=\"body\" rel=\"popover\" tabindex=\"0\" href=\"/subscription/new\">Video Preview</a>\n</div>\n</div>\n<div aria-labelledby='concepts-heading' class='rp-info-section'>\n<h2 class='title' id='concepts-heading'>Concepts</h2>\n<div class='clearfix'>\n<div class='details-list concepts' data-identifier='Boclips::VideoDecorator62a0e4868b9cc0130f1cb6ed' data-type='concepts'>transmission, time, electronics</div>\n<div class='concepts-toggle-buttons' data-identifier='Boclips::VideoDecorator62a0e4868b9cc0130f1cb6ed'>\n<button aria-expanded='false' class='more btn-link' type='button'>\n<span>Show More</span>\n<i aria-hidden='true' class='fa-solid fa-caret-down ml5'></i>\n</button>\n<button aria-expanded='true' class='less btn-link' style='display: none;' type='button'>\n<span>Show Less</span>\n<i aria-hidden='true' class='fa-solid fa-caret-up ml5'></i>\n</button>\n</div>\n</div>\n</div>\n<div aria-labelledby='additional-tags-heading' class='rp-info-section'>\n<h2 class='title' id='additional-tags-heading'>Additional Tags</h2>\n<div class='clearfix'>\n<div class='details-list keyterms' data-identifier='Boclips::VideoDecorator62a0e4868b9cc0130f1cb6ed' data-type='keyterms'>arduino, arduino tutorial, arduino lesson, open source hardware group, learning arduino, arduino ide, arduino sketch, c++, programming electronics academy, electronics basics, electronics basics for beginners, electronics basics great scott, serial communication, electronics technician, electronics engineering, arduino startups, computer programming for beginners, logic level, transmit pin, bod rate, baud rate, data frame, significant bit, serial begin, start bit, parity bit, receive pin, total number, start, parity, signal, receiver, number, stop, send, capital, bits, message, high, sender, computer, notice, sending</div>\n<div class='keyterms-toggle-buttons' data-identifier='Boclips::VideoDecorator62a0e4868b9cc0130f1cb6ed'>\n<button aria-expanded='false' class='more btn-link' type='button'>\n<span>Show More</span>\n<i aria-hidden='true' class='fa-solid fa-caret-down ml5'></i>\n</button>\n<button aria-expanded='true' class='less btn-link' style='display: none;' type='button'>\n<span>Show Less</span>\n<i aria-hidden='true' class='fa-solid fa-caret-up ml5'></i>\n</button>\n</div>\n</div>\n</div>\n<div aria-labelledby='classroom-considerations-heading' class='rp-info-section'>\n<h2 class='title' id='classroom-considerations-heading'>Classroom Considerations</h2>\n<div class='classroom-considerations'><div class='fai fa-solid fa-bell'></div>Best For: Explaining a topic</div><div class='classroom-considerations'><div class='fai fa-solid fa-bell'></div>Video is ad-free</div> \n</div>\n<div aria-labelledby='educator-ratings-heading' class='rp-info-section'>\n<h2 class='title sr-only' id='educator-ratings-heading'>Educator Ratings</h2>\n<div id=\"educator-ratings-root\"></div><div id=\"all-educator-ratings-root\"></div><div id=\"educator-rating-form-root\"></div>\n</div>\n</div>\n<div class='rp-resource'>\n<div aria-label='Show resource details' class='rp-show-info' role='button' tabindex='0'>\n<i class='fai fa-solid fa-align-left'></i>\nShow resource details\n</div>\n<div aria-label='Video player' class='player' id='player-wrapper' role='region'>\n<div class='relative container mx-auto' id='lp-boclips-visitor-thumbnail'>\n<a class=\"block\" data-html=\"true\" data-placement=\"bottom\" data-trigger=\"click\" data-content=\"<div class=&quot;text-center py-2&quot;><a class=&quot;bold&quot; href=&quot;/auth/users/sign_in&quot;>Sign in</a> or <a class=&quot;bold text-danger&quot; data-posthog-event=&quot;Signup: LP Signup Activity&quot; data-posthog-location=&quot;body_link_boclips&quot; data-remote=&quot;true&quot; href=&quot;/subscription/new&quot;>Join Now</a></div>\" data-title=\"Get Full Access\" data-container=\"body\" rel=\"popover\" tabindex=\"0\" aria-label=\"Play video: TTL Serial Communication Protocol Explained | Part 3\" href=\"/subscription/new\"><img class=\"resource-img img-thumbnail img-responsive z-10 lp-boclips-thumbnail w-full h-full lozad\" alt=\"TTL Serial Communication Protocol Explained | Part 3\" title=\"TTL Serial Communication Protocol Explained | Part 3\" onError=\"handleImageNotLoadedError(this)\" data-default-image=\"https://statictemp.lp.lexp.cloud/images/attachment_defaults/resource/large/missing.png\" data-src=\"https://cdnapisec.kaltura.com/p/1776261/thumbnail/entry_id/1_k2lb0wb4/width/250/vid_slices/3/vid_slice/1\" width=\"315\" height=\"220\" src=\"data:image/png;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs\" />\n<span aria-hidden='true' class='flex justify-center items-center bg-white rounded-full w-16 h-16 absolute top-1/2 left-1/2 -mt-8 -ml-8 cursor-pointer z-0 border-2 border-primary drop-shadow-md lp-boclips-thumbnail-playBtn'>\n<i class='fa-solid fa-play text-primary text-3xl ml-1 drop-shadow-xl'></i>\n</span>\n</a></div>\n</div>\n</div>\n</div>\n</div>\n</div>\n"}