{"id":13781817,"url":"https://github.com/lincomatic/LiquidTWI2","last_synced_at":"2025-05-11T15:32:04.524Z","repository":{"id":5090414,"uuid":"6252889","full_name":"lincomatic/LiquidTWI2","owner":"lincomatic","description":"A lean, high speed I2C LCD Library for Arduino, which supports MCP23008 and MCP23017","archived":false,"fork":false,"pushed_at":"2020-06-21T03:09:00.000Z","size":44,"stargazers_count":50,"open_issues_count":0,"forks_count":33,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-17T17:42:38.188Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"vinsol-spree-contrib/spree_wallet","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lincomatic.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-10-16T22:41:01.000Z","updated_at":"2023-03-14T17:39:51.000Z","dependencies_parsed_at":"2022-07-08T07:44:37.693Z","dependency_job_id":null,"html_url":"https://github.com/lincomatic/LiquidTWI2","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincomatic%2FLiquidTWI2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincomatic%2FLiquidTWI2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincomatic%2FLiquidTWI2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincomatic%2FLiquidTWI2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lincomatic","download_url":"https://codeload.github.com/lincomatic/LiquidTWI2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253588624,"owners_count":21932289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T18:01:29.714Z","updated_at":"2025-05-11T15:32:04.217Z","avatar_url":"https://github.com/lincomatic.png","language":"C++","readme":"LiquidTWI2\n==========\n\nA lean, high speed I2C LCD Library for Arduino, which supports MCP23008 (Adafruit LCD Backpack) and MCP23017 (Adafruit RGB LCD Shield)\n\nhacked by Sam C. Lin / http://www.lincomatic.com\nfrom \n  LiquidTWI by Matt Falcon (FalconFour) / http://falconfour.com\n  logic gleaned from Adafruit RGB LCD Shield library\n  Panelolu2 support by Tony Lock / http://blog.think3dprint3d.com\n  Panelolu2 integration by Robert F-C / https://github.com/buildrob\n  enhancements by Nick Sayer / https://github.com/nsayer\n\nCompatible with Adafruit I2C LCD backpack (MCP23008) and\nAdafruit RGB LCD Shield (and optionally, Panelolu2)\n\nFor more information see \n http://blog.lincomatic.com/?tag=LiquidTWI2\n http://forums.adafruit.com/viewtopic.php?f=19\u0026t=21586\n Panelolu2 usage see\n http://blog.think3dprint3d.com/2012/12/mcp23017-i2c.html\n\n  Version 1.2.7\n\n  Changelog:\n\n  * 1.2.7 / 20190624 SCL\n  fixed row offset issue w/ 16x4 LCD per https://github.com/lincomatic/LiquidTWI2/issues/15\n\n  * 1.2.6 / 20140220 SCL\n  added device detected guard to home() \u0026 buzz()\n\n  * 1.2.5 / 20130725 SCL\n  added LcdDetected() from Scott Rubin\n\n  * 1.2.4 / 20130409 SCL\n  buzz() fixes from buildrob\n\n  * 1.2.3 / 20130322 SCL\n  PANELOLU2 support cleanup and always enabled when MCP23017 by buildrob\n  buzz() now works for Panucatt Viki as well\n\n  * 1.2.2 / 20130120 SCL\n  make setMCPType() a no-op when only one MCPxxxx defined instead\n  of removing it\n\n  * 1.2.1 / 20130102 SCL\n  disable PANELOLU2 by default\n\n  * 1.2.0 / 20130101 SCL\n  added DETECT_DEVICE\n\n  * 1.1.1 / 20121219 SCL\n  added Tony Lock's Panelolu2 enhancements\n\n  * 1.1.0 / 20121018 SCL\n  use 8-bit GPIO for writing on MCP23017 for 25% speed increase\n  with only 14 byte size increase\n\n  * 1.0.0 / 20121016 SCL\n  initial release\n\n  Distributed with as free-will a license as is available given this code's long\n  associative chain of licenses (LiquidCrystal -\u003e Arduino -\u003e Wiring -\u003e ...?). Use\n  it in any way you feel fit, profit or free, provided it fits in the licenses of\n  its associated works.\n\n  Installation:\n  extract LiquidTWI2/ into \u003carduinosketchbook\u003e/libraries/LiquidTWI2\n\n  To use with Panelolu2\n\tlcd.setMCPType(LTI_TYPE_MCP23017);\n    Panelolu2 only has encoder.. use PANELOLU_ENCODER_X bits instead of BUTTON_xxx\n\n  Usage:\n  Compatible with Arduino LiquidCrystal library except that setMCPType() MUST\n  be called at least once before begin() is called\n\n  // MCP23008 (Adafruit LCD Backpack)\n  #include \u003cWire.h\u003e\n  #include \u003cLiquidTWI2.h\u003e\n  LiquidTWI2 lcd(0x20);\n  void setup() {\n   lcd.setMCPType(LTI_TYPE_MCP23008); // must be called before begin()\n   lcd.begin(16,2);\n   lcd.setBacklight(HIGH); // only supports HIGH or LOW\n  }\n  void loop() {\n   lcd.print(\"Hello World!\");\n   delay(500);\n   lcd.clear();\n   delay(500);\n  }\n\n  // MCP23017 (Adafruit RGB LCD Shield)\n  #include \u003cWire.h\u003e\n  #include \u003cLiquidTWI2.h\u003e\n  LiquidTWI2 lcd(0x20);\n  void setup() {\n   lcd.setMCPType(LTI_TYPE_MCP23017); // must be called before begin()\n   lcd.begin(16,2);\n   lcd.setBacklight(WHITE); // see LiquidTWI2.h for color options\n  }\n  void loop() {\n   lcd.print(\"Hello World!\");\n   delay(500);\n   lcd.clear();\n   delay(500);\n   uint8_t btns = lcd.readButtons();\n  }\n\n  If you change the i2c address of the board, set \"lcd(0x20)\" to your new 3-bit\n  address.\n  If you have more than a 16x2 LCD, change \"lcd.begin(16,2)\" to reflect the\n  columns and rows of your LCD.\n\n  Normally, the code will hang if the device is not detected at the specified\n  i2c address.  If you want to compile your code for an optionally installed\n  LCD, call the constructor with 2nd parameter deviceDetect=1. E.g:\n     LiquidTWI2 lcd(0x20,1);\n  When enabled, if the device is not detected at the specified address when\n  begin() is called, then the rest of the function calls become NOOPs\n\n  Note that the library can switch modes at runtime. Simply call setMCPType(),\n  followed by begin().\n  This allows you to create a firmware which is compatible with either kind\n  of LCD module, and select the type from EEPROM.\n\n  For memory-constrained projects, disable the unnecessary support by\n  commenting out the corresponding MCP230xx in LiquidTWI2.h, and DETECT_DEVICE\n","funding_links":[],"categories":["Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flincomatic%2FLiquidTWI2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flincomatic%2FLiquidTWI2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flincomatic%2FLiquidTWI2/lists"}