{"id":1521,"date":"2018-12-08T13:00:10","date_gmt":"2018-12-08T13:00:10","guid":{"rendered":"http:\/\/chewett.co.uk\/blog\/?p=1521"},"modified":"2020-08-12T19:27:09","modified_gmt":"2020-08-12T18:27:09","slug":"128x64-i2c-sh1106-oled-display-module-screen-for-arduino-review-and-code","status":"publish","type":"post","link":"https:\/\/chewett.co.uk\/blog\/1521\/128x64-i2c-sh1106-oled-display-module-screen-for-arduino-review-and-code\/","title":{"rendered":"128&#215;64 I2C\u00a0SH1106 OLED Display Module Screen for Arduino Review and Code"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"254\" data-attachment-id=\"1522\" data-permalink=\"https:\/\/chewett.co.uk\/blog\/1521\/128x64-i2c-sh1106-oled-display-module-screen-for-arduino-review-and-code\/128x64_sh1106_oled_review\/\" data-orig-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?fit=800%2C300&amp;ssl=1\" data-orig-size=\"800,300\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"128x64_SH1106_OLED_review\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?fit=300%2C113&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?fit=678%2C254&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?resize=678%2C254\" alt=\"\" class=\"wp-image-1522\" srcset=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?w=800&amp;ssl=1 800w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?resize=300%2C113&amp;ssl=1 300w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?resize=768%2C288&amp;ssl=1 768w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_SH1106_OLED_review.jpg?resize=50%2C19&amp;ssl=1 50w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure><\/div>\n\n\n\n<p>Today I review the 128&#215;64 I2C&nbsp;SH1106 OLED Display Module Screen for Arduino and provide example code.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Overview of the 128&#215;64 I2C&nbsp;SH1106 OLED Display Module<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"1567\" data-permalink=\"https:\/\/chewett.co.uk\/blog\/1517\/128x32-i2c-ssd1306-oled-display-module-screen-for-arduino-review-and-code\/128x64_oled_main_image\/\" data-orig-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?fit=800%2C800&amp;ssl=1\" data-orig-size=\"800,800\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"128x64_oled_main_image\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?fit=300%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?fit=678%2C678&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?resize=326%2C326\" alt=\"\" class=\"wp-image-1567\" width=\"326\" height=\"326\" srcset=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?w=800&amp;ssl=1 800w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?resize=768%2C768&amp;ssl=1 768w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_main_image.jpg?resize=50%2C50&amp;ssl=1 50w\" sizes=\"auto, (max-width: 326px) 100vw, 326px\" \/><\/figure><\/div>\n\n\n\n<p>This rectangular OLED display module gives you a 128&#215;64 pixel screen to display content on. This is a single colour model allowing for each pixel to be on or off. Since this is an OLED screen this will draw a lot less power compared to a standard LCD screen. This is useful in small embedded devices such as when used with an Arduino as these may be battery powered.<\/p>\n\n\n\n<p>This OLED display uses the SH1106 driver IC which has a standard supported library on the Arduino. This allows easy control on the Arduino to draw and write to the screen.<\/p>\n\n\n\n<p>The approximate size of this module is&nbsp;27 * 27 mm which is small enough to keep the footprint of the device low.<\/p>\n\n\n\n<p>A final advantage to this unit is that it can easily be used with various microcontrollers as it supports both 3.3 and 5-volt&nbsp;power inputs. These are the two most common power levels among IC\u2019s.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wiring it up to the Arduino<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"316\" data-attachment-id=\"2606\" data-permalink=\"https:\/\/chewett.co.uk\/blog\/1521\/128x64-i2c-sh1106-oled-display-module-screen-for-arduino-review-and-code\/128x64_oled_wiring_diagram_arduino\/\" data-orig-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?fit=800%2C373&amp;ssl=1\" data-orig-size=\"800,373\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"128x64_oled_wiring_diagram_arduino\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?fit=300%2C140&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?fit=678%2C316&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?resize=678%2C316&#038;ssl=1\" alt=\"\" class=\"wp-image-2606\" srcset=\"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?w=800&amp;ssl=1 800w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?resize=300%2C140&amp;ssl=1 300w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?resize=768%2C358&amp;ssl=1 768w, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/12\/128x64_oled_wiring_diagram_arduino.jpg?resize=50%2C23&amp;ssl=1 50w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/figure><\/div>\n\n\n\n<p>The OLED screen has four pins, left to right these are GND, VCC, SCL,&nbsp;and SDA. I am going to wire GND and VCC to the Arduino\u2019s GND and 5 volt pins respectively.<\/p>\n\n\n\n<p>The SCL and SDA pins have to be connected to the Arduino\u2019s I2C pins. For my Arduino Uno these are\u00a0A4 (SDA), A5 (SCL). If you are not using an Arduino Uno you can find your Arduino\u2019s I2C pins by <a href=\"https:\/\/chewett.co.uk\/blog\/1526\/sda-scl-i2c-twi-pins-on-the-arduino\/\" data-type=\"URL\" data-id=\"https:\/\/chewett.co.uk\/blog\/1526\/sda-scl-i2c-twi-pins-on-the-arduino\/\">looking at this table<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Programming the OLED screen to display Hello World<\/h2>\n\n\n\n<p>To program the OLED screen I am using the&nbsp;<a href=\"https:\/\/github.com\/olikraus\/u8g2\" target=\"_blank\" rel=\"noopener noreferrer\">U8glib library for monochrome displays<\/a>. library. If you are using the Arduino IDE you will need to install it using the Manage Libraries feature, the library name in the Arduino IDE is \u201cU8g2 by oliver\u201d.<\/p>\n\n\n\n<p>This library allows easy programming of the OLED screen allowing both text and standard graphical shapes.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">#include &lt;U8g2lib.h&gt;\nU8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0);\n\nvoid setup(void) {\n&nbsp; u8g2.begin();\n}<\/pre>\n\n\n\n<p>First the U8g2lib library is imported so that its functions can be used. Then the u8g2 module is initialized for the SH1106 OLED display module. The parameter passed to the constructor sets the rotation to the default rotation level.<\/p>\n\n\n\n<p>There are a number of constructors for this module but this is using the I2C constructor to access the LCD display using the standard I2C pins.<\/p>\n\n\n\n<p>Then in the setup function, the communication with the OLED display module is started.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">void loop(void) {\n  u8g2.firstPage();\n  do {\n    \/\/keep this the same as it pages through the data generating the screen\n    u8g2.setFont(u8g2_font_ncenB14_tr);\n    u8g2.drawStr(0,20,\"Hello World!\");\n  } while ( u8g2.nextPage() );\n\n  delay(1000); \n}<\/pre>\n\n\n\n<p>In the loop function,&nbsp;<code>firstPage()<\/code>&nbsp;is called to start drawing of the OLED.&nbsp; The drawing code is inside a&nbsp;<code>do while<\/code>&nbsp;loop&nbsp; so that the library can efficiently page the data across to the OLED display. By including your drawing code inside the while loop you are able to adjust how the speed and RAM tradeoff.<\/p>\n\n\n\n<p>In fully buffered mode rendering the images onto the OLED display is much faster however it will use a lot more RAM. You can change the rendering mode based on the constructor to use less RAM. However reducing the amount of RAM used for rendering will slow down the render as it will render the images in several pages which is slower.<\/p>\n\n\n\n<p>Inside the loop I configure which font I want to use and then draw the string \u201cHello World!\u201d. The first two parameters to the&nbsp;<code>drawStr<\/code>&nbsp;function are the&nbsp;<code>x<\/code>&nbsp;and&nbsp;<code>y<\/code>&nbsp;position on the screen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Review for the 128&#215;64 I2C&nbsp;SH1106 OLED Display Module<\/h2>\n\n\n\n<p>This little OLED display allows you to easily add a display to any small electronics project. One of the main advantages for projects is that this OLED screen is low power useful for battery projects.<\/p>\n\n\n\n<p>The simple driver library for this means you dont need to worry about writing low level commands to write to the device. This paired with the high resolution of the display means you can use it to display complex information.<\/p>\n\n\n\n<p>This is a really nice display which can be used for many different purposes. Going forward I will be writing some posts about how you can use this screens to draw more complex shapes and interfaces.<\/p>\n\n\n\n<p><strong>Would buy again!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I review the 128&#215;64 I2C&nbsp;SH1106 OLED Display Module Screen for Arduino and provide example code.<\/p>\n","protected":false},"author":1,"featured_media":1566,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Today I have written about the 128x64 I2C\u00a0#SH1106 #OLED Display Module Screen for #Arduino reviewing it and providing #code","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[97],"tags":[132,295,296,288,294,298],"class_list":["post-1521","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics","tag-arduino","tag-display-module","tag-i2c","tag-lcd","tag-oled","tag-sh1106"],"wppr_data":{"cwp_meta_box_check":"No"},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x64_oled_post_icon.jpg?fit=800%2C800&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p2toWX-ox","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2549,"url":"https:\/\/chewett.co.uk\/blog\/2549\/using-the-128x64-i2c-sh1106-oled-display-module-screen-with-a-wemos-d1-mini-esp8266\/","url_meta":{"origin":1521,"position":0},"title":"Using the 128\u00d764 I2C SH1106 OLED Display Module Screen with a WeMos D1 Mini (ESP8266)","author":"Chewett","date":"September 26, 2020","format":false,"excerpt":"In this blog post I talk about how you can use a 128\u00d764 I2C\u00a0SH1106 OLED Display Module Screen with a WeMos D1 Mini (ESP8266) using the Arduino IDE. Summary of the 128\u00d764 I2C\u00a0SH1106 OLED Display Module Screen The SH1106 OLED display module is a nice 128x64 pixel screen. This unit\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_128x64_sh1106_oled_screen_output.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_128x64_sh1106_oled_screen_output.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_128x64_sh1106_oled_screen_output.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_128x64_sh1106_oled_screen_output.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_128x64_sh1106_oled_screen_output.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1517,"url":"https:\/\/chewett.co.uk\/blog\/1517\/128x32-i2c-ssd1306-oled-display-module-screen-for-arduino-review-and-code\/","url_meta":{"origin":1521,"position":1},"title":"128&#215;32 I2C\u00a0SSD1306 OLED Display Module Screen for Arduino Review and Code","author":"Chewett","date":"September 29, 2018","format":false,"excerpt":"Today I review the 128x32\u00a0I2C\u00a0SSD1306 OLED Display Module Screen for Arduino and provide example code. Overview of the 128x32\u00a0I2C\u00a0SSD1306 OLED Display Module This OLED display module allows you to display any content you want on a small display screen. This unit is a single colour display. Using OLED technology this\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x32_oled_post_icon.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x32_oled_post_icon.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x32_oled_post_icon.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/128x32_oled_post_icon.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":1601,"url":"https:\/\/chewett.co.uk\/blog\/1601\/gy-521-mpu6050-3-axis-accelerometer-gyroscope-module-review-and-code\/","url_meta":{"origin":1521,"position":2},"title":"GY-521 MPU6050 3 Axis Accelerometer Gyroscope Module Review and Code","author":"Chewett","date":"June 13, 2020","format":false,"excerpt":"This post talks about using the GY-521 MPU6050 3 Axis Accelerometer Gyroscope with an Arduino. GY-521 MPU6050 3 Axis Accelerometer Gyroscope The GY-521 MPU6050 3 Axis Accelerometer Gyroscope is a relatively complex module. The gyroscope allows you to tell both the angle it is positioned in all three axis directions\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/gy521_mpu6050_accelerometer_post_image.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/gy521_mpu6050_accelerometer_post_image.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/gy521_mpu6050_accelerometer_post_image.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/gy521_mpu6050_accelerometer_post_image.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":1526,"url":"https:\/\/chewett.co.uk\/blog\/1526\/sda-scl-i2c-twi-pins-on-the-arduino\/","url_meta":{"origin":1521,"position":3},"title":"SDA SCL I2C TWI Pins on the Arduino","author":"Chewett","date":"September 12, 2018","format":false,"excerpt":"This post details where the SDA SCL pins used for I2C\/TWI are available on Arduino's. I2C TWI pins on the Arduino The SDA and SCL pins are the used for communication using the I2C\/TWI protocols. These allow multiple devices to communicate the Arduino on a standard interface. Most Arduino's only\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/i2c_twi_pins_on_arduino.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/i2c_twi_pins_on_arduino.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/i2c_twi_pins_on_arduino.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/09\/i2c_twi_pins_on_arduino.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":2543,"url":"https:\/\/chewett.co.uk\/blog\/2543\/i2c-connection-pins-on-the-wemos-d1-mini-esp8266\/","url_meta":{"origin":1521,"position":4},"title":"I2C Connection Pins on the WeMos D1 Mini (ESP8266)","author":"Chewett","date":"July 18, 2020","format":false,"excerpt":"This blog post details the I2C connections on the WeMos D1 Mini (ESP8266). Using I2C connections with the WeMos D1 Mini (ESP8266) Within IoT devices the I2C protocol is used a lot for multi-master multi-slave communication as a relatively simple serial bus. You will find that small sensors will report\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_i2c_pin_numbering_posticon_output.png?fit=1200%2C628&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_i2c_pin_numbering_posticon_output.png?fit=1200%2C628&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_i2c_pin_numbering_posticon_output.png?fit=1200%2C628&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_i2c_pin_numbering_posticon_output.png?fit=1200%2C628&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2020\/08\/wemos_i2c_pin_numbering_posticon_output.png?fit=1200%2C628&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":1595,"url":"https:\/\/chewett.co.uk\/blog\/1595\/max-30100-heart-rate-sensor-for-arduino-review-and-code\/","url_meta":{"origin":1521,"position":5},"title":"MAX-30100 Heart Rate Sensor for Arduino Review and Code","author":"Chewett","date":"May 30, 2020","format":false,"excerpt":"This post talks about using the MAX-30100 Heart Rate Sensor with an Arduino. MAX-30100 Heart Rate Sensor The MAX-30100 Heart Rate sensor allows reading heart rate and is an integrated pulse oximeter. This allows roughly detecting the percentage of oxygenated blood and the rate at which your heart is beating.\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/chewett.co.uk\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/heart_rate_sensor_post_image.jpg?fit=800%2C800&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/heart_rate_sensor_post_image.jpg?fit=800%2C800&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/heart_rate_sensor_post_image.jpg?fit=800%2C800&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/chewett.co.uk\/blog\/wp-content\/uploads\/2018\/10\/heart_rate_sensor_post_image.jpg?fit=800%2C800&ssl=1&resize=700%2C400 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=1521"}],"version-history":[{"count":9,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1521\/revisions"}],"predecessor-version":[{"id":2608,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/posts\/1521\/revisions\/2608"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/media\/1566"}],"wp:attachment":[{"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=1521"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=1521"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chewett.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=1521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}