{"id":276,"date":"2014-09-29T00:13:08","date_gmt":"2014-09-29T07:13:08","guid":{"rendered":"http:\/\/ismellsmoke.net\/\/?p=276"},"modified":"2014-09-29T00:16:55","modified_gmt":"2014-09-29T07:16:55","slug":"hacking-a-bv4618-20x4-lcd-part-3","status":"publish","type":"post","link":"https:\/\/ismellsmoke.net\/?p=276","title":{"rendered":"Hacking a BV4618 20&#215;4 LCD (Part-3)"},"content":{"rendered":"<p>In <a href=\"https:\/\/ismellsmoke.net\/\/?p=194\" target=\"_blank\">Part-2<\/a> of this blog post series I provided a detailed &#8216;How-To&#8217; for new users of the\u00a0 <em>ByVac<\/em> <em>BV4618<\/em> LCD for their Arduino projects. It is clear to me there are plenty of Arduino hobbyists who want to hack LCD&#8217;s and need a simple way to wire them up and write to them.<\/p>\n<p><em>The ByVac<\/em> <em>BV4618<\/em> LCD is a great choice. You can actually get it up and running with three wires &#8211; V+, Gnd, and Tx. Writing text to the display is pretty straightforward using the BV4618_S library. The library is useful, but Ol&#8217; Sopwith does not think the class is easy enough to use for beginners.<\/p>\n<p>To solve this problem I extended the BV4618_S class library and created a new class named <em>sop4618_S<\/em>. The class is brain-dead simple to use and it hides all the complexities of the VT100 code sequences.<\/p>\n<p><!--more--><\/p>\n<p>The class has the following features:<\/p>\n<ul>\n<li>\n<div class=\"padding\">Simple API for new programmers<\/div>\n<\/li>\n<li>\n<div class=\"padding\">Complete cursor management<\/div>\n<\/li>\n<li>\n<div class=\"padding\">Cursor X,Y positioning<\/div>\n<\/li>\n<li>\n<div class=\"padding\">LCD backlight control<\/div>\n<\/li>\n<li>\n<div class=\"padding\">Text centering functions<\/div>\n<\/li>\n<li>\n<div class=\"padding\">Uses the Arduino String class for efficiency<\/div>\n<\/li>\n<li>\n<div class=\"padding\">Clear method names<\/div>\n<ul>\n<li>clearLCD()<\/li>\n<li>centerString()<\/li>\n<li>cursorXY(2, 10)<\/li>\n<li>cursorShow(false)<\/li>\n<li>printString(&#8220;Anybody seen Kilroy?&#8221;)<\/li>\n<li>enableBacklight(true)<\/li>\n<li>etc.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Included in the class library is a Demo sketch that shows how to use the class. You can see two screens of the demo program below.<\/p>\n<p><a href=\"https:\/\/ismellsmoke.net\/\/wp-content\/uploads\/2014\/09\/Kilroy-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-279\" src=\"https:\/\/ismellsmoke.net\/\/wp-content\/uploads\/2014\/09\/Kilroy-1.jpg\" alt=\"\" width=\"440\" height=\"174\" srcset=\"https:\/\/ismellsmoke.net\/wp-content\/uploads\/2014\/09\/Kilroy-1.jpg 827w, https:\/\/ismellsmoke.net\/wp-content\/uploads\/2014\/09\/Kilroy-1-300x118.jpg 300w, https:\/\/ismellsmoke.net\/wp-content\/uploads\/2014\/09\/Kilroy-1-500x197.jpg 500w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/ismellsmoke.net\/\/wp-content\/uploads\/2014\/09\/Kilroy-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-278 aligncenter\" src=\"https:\/\/ismellsmoke.net\/\/wp-content\/uploads\/2014\/09\/Kilroy-2.jpg\" alt=\"There he is!\" width=\"443\" height=\"177\" \/><\/a>The Arduino class library, demo program, and detailed documentation is included in the zip file. Click on the button below to download the library.<\/p>\n<p><center><div class=\"sdm_download_button_box_default\"><div class=\"sdm_download_link\"><a href=\"https:\/\/ismellsmoke.net\/?sdm_process_download=1&download_id=284\" class=\"sdm_download green\" title=\"\" >Download sop4618_S_v.0.5<\/a><\/div><\/div><\/center>&nbsp;<\/p>\n<p>Special thanks to <em>ByVac<\/em> for designing such a cool gagdet.<\/p>\n<p>Hack on!<\/p>\n<p><em>Sopwith<\/em><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Part-2 of this blog post series I provided a detailed &#8216;How-To&#8217; for new users of the\u00a0 ByVac BV4618 LCD for their Arduino projects. It is clear to me there are plenty of Arduino hobbyists who want to hack LCD&#8217;s &hellip; <a href=\"https:\/\/ismellsmoke.net\/?p=276\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,9,5,6],"tags":[],"class_list":["post-276","post","type-post","status-publish","format-standard","hentry","category-arduino","category-code","category-general","category-how-to"],"_links":{"self":[{"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/posts\/276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=276"}],"version-history":[{"count":15,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/posts\/276\/revisions"}],"predecessor-version":[{"id":300,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=\/wp\/v2\/posts\/276\/revisions\/300"}],"wp:attachment":[{"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ismellsmoke.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}