{"id":8072,"date":"2024-05-19T19:03:41","date_gmt":"2024-05-19T19:03:41","guid":{"rendered":"https:\/\/mc.scsiraidguru.com\/?page_id=8072"},"modified":"2024-05-19T19:13:16","modified_gmt":"2024-05-19T19:13:16","slug":"rpi-i2c-lcd","status":"publish","type":"page","link":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/","title":{"rendered":"RPi I2C LCD"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8072\" class=\"elementor elementor-8072\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-6b13504 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"6b13504\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f578162\" data-id=\"f578162\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-41315f6 elementor-widget elementor-widget-text-editor\" data-id=\"41315f6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>I created a 3.3V side to my build.&nbsp; It has my Raspberry Pi 4B and Arduino Giga R1 Wifi.&nbsp; RPi_I2C_driver_27.py is the file for the I2C LCD on address 27.&nbsp;&nbsp; As I add I2C LCD screens, this file will be copied and address and name changed to match up to the new screen.&nbsp; I2cBus is 1 on the Raspberry Pi 4B.&nbsp; 2f is the Arduino Giga R1 Wifi.&nbsp; Raspberry Pi 4B is the Master on I2C.<br><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e4a2a32 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e4a2a32\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7248dd9\" data-id=\"7248dd9\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4daf319 elementor-widget elementor-widget-text-editor\" data-id=\"4daf319\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>sudo i2cdetect -y 1<br \/>0 1 2 3 4 5 6 7 8 9 a b c d e f<br \/>00: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>10: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>20: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; 27 &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; 2f <br \/>30: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>40: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>50: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>60: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; <br \/>70: &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212; &#8212;<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-40a1cc2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"40a1cc2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cb96113\" data-id=\"cb96113\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ab77a84 elementor-widget elementor-widget-text-editor\" data-id=\"ab77a84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">RPi_I2C_driver_27.py<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-169d6d1 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"169d6d1\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6a24add\" data-id=\"6a24add\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-728f306 elementor-widget elementor-widget-text-editor\" data-id=\"728f306\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre># -*- coding: utf-8 -*-<br \/># Original code found at:<br \/># https:\/\/gist.github.com\/DenisFromHR\/cc863375a6e19dce359d<br \/><br \/>\"\"\"<br \/>Compiled, mashed and generally mutilated 2014-2015 by Denis Pleic<br \/>Made available under GNU GENERAL PUBLIC LICENSE<br \/><br \/># Modified Python I2C library for Raspberry Pi<br \/># as found on http:\/\/www.recantha.co.uk\/blog\/?p=4849<br \/># Joined existing 'i2c_lib.py' and 'lcddriver.py' into a single library<br \/># added bits and pieces from various sources<br \/># By DenisFromHR (Denis Pleic)<br \/># 2015-02-10, ver 0.1<br \/><br \/>\"\"\"<br \/><br \/># i2c bus (0 -- original Pi, 1 -- Rev 2 Pi)<br \/>I2CBUS = 1<br \/><br \/># LCD Address<br \/>ADDRESS = 0x27<br \/><br \/>import smbus<br \/>from time import sleep<br \/><br \/>class i2c_device:<br \/>def __init__(self, addr, port=I2CBUS):<br \/>self.addr = addr<br \/>self.bus = smbus.SMBus(port)<br \/><br \/># Write a single command<br \/>def write_cmd(self, cmd):<br \/>self.bus.write_byte(self.addr, cmd)<br \/>sleep(0.0001)<br \/><br \/># Write a command and argument<br \/>def write_cmd_arg(self, cmd, data):<br \/>self.bus.write_byte_data(self.addr, cmd, data)<br \/>sleep(0.0001)<br \/><br \/># Write a block of data<br \/>def write_block_data(self, cmd, data):<br \/>self.bus.write_block_data(self.addr, cmd, data)<br \/>sleep(0.0001)<br \/><br \/># Read a single byte<br \/>def read(self):<br \/>return self.bus.read_byte(self.addr)<br \/><br \/># Read<br \/>def read_data(self, cmd):<br \/>return self.bus.read_byte_data(self.addr, cmd)<br \/><br \/># Read a block of data<br \/>def read_block_data(self, cmd):<br \/>return self.bus.read_block_data(self.addr, cmd)<br \/><br \/><br \/># commands<br \/>LCD_CLEARDISPLAY = 0x01<br \/>LCD_RETURNHOME = 0x02<br \/>LCD_ENTRYMODESET = 0x04<br \/>LCD_DISPLAYCONTROL = 0x08<br \/>LCD_CURSORSHIFT = 0x10<br \/>LCD_FUNCTIONSET = 0x20<br \/>LCD_SETCGRAMADDR = 0x40<br \/>LCD_SETDDRAMADDR = 0x80<br \/><br \/># flags for display entry mode<br \/>LCD_ENTRYRIGHT = 0x00<br \/>LCD_ENTRYLEFT = 0x02<br \/>LCD_ENTRYSHIFTINCREMENT = 0x01<br \/>LCD_ENTRYSHIFTDECREMENT = 0x00<br \/><br \/># flags for display on\/off control<br \/>LCD_DISPLAYON = 0x04<br \/>LCD_DISPLAYOFF = 0x00<br \/>LCD_CURSORON = 0x02<br \/>LCD_CURSOROFF = 0x00<br \/>LCD_BLINKON = 0x01<br \/>LCD_BLINKOFF = 0x00<br \/><br \/># flags for display\/cursor shift<br \/>LCD_DISPLAYMOVE = 0x08<br \/>LCD_CURSORMOVE = 0x00<br \/>LCD_MOVERIGHT = 0x04<br \/>LCD_MOVELEFT = 0x00<br \/><br \/># flags for function set<br \/>LCD_8BITMODE = 0x10<br \/>LCD_4BITMODE = 0x00<br \/>LCD_2LINE = 0x08<br \/>LCD_1LINE = 0x00<br \/>LCD_5x10DOTS = 0x04<br \/>LCD_5x8DOTS = 0x00<br \/><br \/># flags for backlight control<br \/>LCD_BACKLIGHT = 0x08<br \/>LCD_NOBACKLIGHT = 0x00<br \/><br \/>En = 0b00000100 # Enable bit<br \/>Rw = 0b00000010 # Read\/Write bit<br \/>Rs = 0b00000001 # Register select bit<br \/><br \/>class lcd:<br \/>#initializes objects and lcd<br \/>def __init__(self):<br \/>self.lcd_device = i2c_device(ADDRESS)<br \/><br \/>self.lcd_write(0x03)<br \/>self.lcd_write(0x03)<br \/>self.lcd_write(0x03)<br \/>self.lcd_write(0x02)<br \/><br \/>self.lcd_write(LCD_FUNCTIONSET | LCD_2LINE | LCD_5x8DOTS | LCD_4BITMODE)<br \/>self.lcd_write(LCD_DISPLAYCONTROL | LCD_DISPLAYON)<br \/>self.lcd_write(LCD_CLEARDISPLAY)<br \/>self.lcd_write(LCD_ENTRYMODESET | LCD_ENTRYLEFT)<br \/>sleep(0.2)<br \/><br \/><br \/># clocks EN to latch command<br \/>def lcd_strobe(self, data):<br \/>self.lcd_device.write_cmd(data | En | LCD_BACKLIGHT)<br \/>sleep(.0005)<br \/>self.lcd_device.write_cmd(((data &amp; ~En) | LCD_BACKLIGHT))<br \/>sleep(.0001)<br \/><br \/>def lcd_write_four_bits(self, data):<br \/>self.lcd_device.write_cmd(data | LCD_BACKLIGHT)<br \/>self.lcd_strobe(data)<br \/><br \/># write a command to lcd<br \/>def lcd_write(self, cmd, mode=0):<br \/>self.lcd_write_four_bits(mode | (cmd &amp; 0xF0))<br \/>self.lcd_write_four_bits(mode | ((cmd &lt;&lt; 4) &amp; 0xF0))<br \/><br \/># write a character to lcd (or character rom) 0x09: backlight | RS=DR&lt;<br \/># works!<br \/>def lcd_write_char(self, charvalue, mode=1):<br \/>self.lcd_write_four_bits(mode | (charvalue &amp; 0xF0))<br \/>self.lcd_write_four_bits(mode | ((charvalue &lt;&lt; 4) &amp; 0xF0))<br \/><br \/># put string function with optional char positioning<br \/>def lcd_display_string(self, string, line=1, pos=0):<br \/>if line == 1:<br \/>pos_new = pos<br \/>elif line == 2:<br \/>pos_new = 0x40 + pos<br \/>elif line == 3:<br \/>pos_new = 0x14 + pos<br \/>elif line == 4:<br \/>pos_new = 0x54 + pos<br \/><br \/>self.lcd_write(0x80 + pos_new)<br \/><br \/>for char in string:<br \/>self.lcd_write(ord(char), Rs)<br \/><br \/># clear lcd and set to home<br \/>def lcd_clear(self):<br \/>self.lcd_write(LCD_CLEARDISPLAY)<br \/>self.lcd_write(LCD_RETURNHOME)<br \/><br \/># define backlight on\/off (lcd.backlight(1); off= lcd.backlight(0)<br \/>def backlight(self, state): # for state, 1 = on, 0 = off<br \/>if state == 1:<br \/>self.lcd_device.write_cmd(LCD_BACKLIGHT)<br \/>elif state == 0:<br \/>self.lcd_device.write_cmd(LCD_NOBACKLIGHT)<br \/><br \/># add custom characters (0 - 7)<br \/>def lcd_load_custom_chars(self, fontdata):<br \/>self.lcd_write(0x40);<br \/>for char in fontdata:<br \/>for line in char:<br \/>self.lcd_write_char(line) <\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9d5cfce elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9d5cfce\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-37aae0e\" data-id=\"37aae0e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-06aba71 elementor-widget elementor-widget-text-editor\" data-id=\"06aba71\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p style=\"text-align: center;\">example.py<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0264b54 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0264b54\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-da78382\" data-id=\"da78382\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-589707d elementor-widget elementor-widget-text-editor\" data-id=\"589707d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<pre>import RPi_I2C_driver_27<br \/>from time import *<br \/><br \/>mylcd = RPi_I2C_driver_27.lcd()<br \/><br \/>mylcd.lcd_display_string(\"Hello World!\", 1)<\/pre>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>I created a 3.3V side to my build.&nbsp; It has my Raspberry Pi 4B and Arduino Giga R1 Wifi.&nbsp; RPi_I2C_driver_27.py is the file for the I2C LCD on address 27.&nbsp;&nbsp; As I add I2C LCD screens, this file will be copied and address and name changed to match up to the new screen.&nbsp; I2cBus is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":85,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"custom","ocean_center_header_left_menu":"","ocean_custom_header_template":"7142","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","osh_disable_topbar_sticky":"default","osh_disable_header_sticky":"default","osh_sticky_header_style":"default","osh_sticky_header_effect":"","osh_custom_sticky_logo":0,"osh_custom_retina_sticky_logo":0,"osh_custom_sticky_logo_height":0,"osh_background_color":"","osh_links_color":"","osh_links_hover_color":"","osh_links_active_color":"","osh_links_bg_color":"","osh_links_hover_bg_color":"","osh_links_active_bg_color":"","osh_menu_social_links_color":"","osh_menu_social_hover_links_color":"","footnotes":""},"class_list":["post-8072","page","type-page","status-publish","hentry","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RPi I2C LCD -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RPi I2C LCD -\" \/>\n<meta property=\"og:description\" content=\"I created a 3.3V side to my build.&nbsp; It has my Raspberry Pi 4B and Arduino Giga R1 Wifi.&nbsp; RPi_I2C_driver_27.py is the file for the I2C LCD on address 27.&nbsp;&nbsp; As I add I2C LCD screens, this file will be copied and address and name changed to match up to the new screen.&nbsp; I2cBus is [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-19T19:13:16+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/\",\"url\":\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/\",\"name\":\"RPi I2C LCD -\",\"isPartOf\":{\"@id\":\"https:\/\/mc.scsiraidguru.com\/#website\"},\"datePublished\":\"2024-05-19T19:03:41+00:00\",\"dateModified\":\"2024-05-19T19:13:16+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/mc.scsiraidguru.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Raspberry Pi\",\"item\":\"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RPi I2C LCD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/mc.scsiraidguru.com\/#website\",\"url\":\"https:\/\/mc.scsiraidguru.com\/\",\"name\":\"SCSIraidGURU MC World\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/f21e3238456a7c2adea5944cb376cddc\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/mc.scsiraidguru.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/f21e3238456a7c2adea5944cb376cddc\",\"name\":\"Michael McKenney\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/mlbxg5wzacc0.i.optimole.com\/cb:FyJ0.12d22\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/mc.scsiraidguru.com\/wp-content\/uploads\/2021\/09\/20210925_105558.jpg\",\"contentUrl\":\"https:\/\/mlbxg5wzacc0.i.optimole.com\/cb:FyJ0.12d22\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/mc.scsiraidguru.com\/wp-content\/uploads\/2021\/09\/20210925_105558.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"Michael McKenney\"},\"logo\":{\"@id\":\"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/mc.scsiraidguru.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RPi I2C LCD -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/","og_locale":"en_US","og_type":"article","og_title":"RPi I2C LCD -","og_description":"I created a 3.3V side to my build.&nbsp; It has my Raspberry Pi 4B and Arduino Giga R1 Wifi.&nbsp; RPi_I2C_driver_27.py is the file for the I2C LCD on address 27.&nbsp;&nbsp; As I add I2C LCD screens, this file will be copied and address and name changed to match up to the new screen.&nbsp; I2cBus is [&hellip;]","og_url":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/","article_modified_time":"2024-05-19T19:13:16+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/","url":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/","name":"RPi I2C LCD -","isPartOf":{"@id":"https:\/\/mc.scsiraidguru.com\/#website"},"datePublished":"2024-05-19T19:03:41+00:00","dateModified":"2024-05-19T19:13:16+00:00","breadcrumb":{"@id":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/rpi-i2c-lcd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/mc.scsiraidguru.com\/"},{"@type":"ListItem","position":2,"name":"Raspberry Pi","item":"https:\/\/mc.scsiraidguru.com\/index.php\/raspberry-pi\/"},{"@type":"ListItem","position":3,"name":"RPi I2C LCD"}]},{"@type":"WebSite","@id":"https:\/\/mc.scsiraidguru.com\/#website","url":"https:\/\/mc.scsiraidguru.com\/","name":"SCSIraidGURU MC World","description":"","publisher":{"@id":"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/f21e3238456a7c2adea5944cb376cddc"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mc.scsiraidguru.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/f21e3238456a7c2adea5944cb376cddc","name":"Michael McKenney","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/image\/","url":"https:\/\/mlbxg5wzacc0.i.optimole.com\/cb:FyJ0.12d22\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/mc.scsiraidguru.com\/wp-content\/uploads\/2021\/09\/20210925_105558.jpg","contentUrl":"https:\/\/mlbxg5wzacc0.i.optimole.com\/cb:FyJ0.12d22\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/mc.scsiraidguru.com\/wp-content\/uploads\/2021\/09\/20210925_105558.jpg","width":2560,"height":1440,"caption":"Michael McKenney"},"logo":{"@id":"https:\/\/mc.scsiraidguru.com\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/mc.scsiraidguru.com"]}]}},"_links":{"self":[{"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/pages\/8072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/comments?post=8072"}],"version-history":[{"count":22,"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/pages\/8072\/revisions"}],"predecessor-version":[{"id":8094,"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/pages\/8072\/revisions\/8094"}],"up":[{"embeddable":true,"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/pages\/85"}],"wp:attachment":[{"href":"https:\/\/mc.scsiraidguru.com\/index.php\/wp-json\/wp\/v2\/media?parent=8072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}