{
  "id": "mattytrentini/micropython-axs5106l",
  "name": "micropython-axs5106l",
  "prettyName": "micropython-axs5106l",
  "description": "",
  "version": "",
  "author": "mattytrentini",
  "license": "MIT",
  "tags": [],
  "status": "VALID",
  "official": false,
  "source": "https://github.com/mattytrentini/micropython-axs5106l",
  "updatedAt": "2026-09-08T06:47:36.221Z",
  "page": "https://checkmim.com/packages/mattytrentini+micropython-axs5106l",
  "createdAt": "2026-09-08T06:47:33.395Z",
  "submittedBy": "Matt",
  "install": {
    "mpremote": "mpremote mip install github:mattytrentini/micropython-axs5106l",
    "mip": "import mip; mip.install(\"github:mattytrentini/micropython-axs5106l\")"
  },
  "readme": "# MicroPython AXS5106L\n\nSmall, dependency-free MicroPython driver for the AXS5106L I2C capacitive\ntouch controller.  It returns raw 12-bit touch coordinates and leaves display\norientation and scaling to the application.\n\n## Install with mip\n\nInstall directly from GitHub on a network-connected MicroPython board:\n\n```python\nimport mip\nmip.install(\"github:mattytrentini/micropython-axs5106l\")\n```\n\nOr install it from a host connected over USB:\n\n```sh\nmpremote mip install github:mattytrentini/micropython-axs5106l\n```\n\n## Waveshare ESP32-C6-Touch-LCD-1.47\n\nThe board uses AXS5106L address `0x63` on the shared I2C bus:\n\n| Signal | ESP32-C6 GPIO |\n| --- | ---: |\n| SDA | 18 |\n| SCL | 19 |\n| RESET | 20 |\n| INT | 21 |\n\nCopy `axs5106l.py` to the board, then run\n`examples/waveshare_esp32_c6_touch_lcd_147.py`. The example resets the\ncontroller and prints `(x, y)` while the screen is touched.\n\n```python\nfrom machine import I2C, Pin\nfrom axs5106l import AXS5106L\n\ni2c = I2C(0, sda=Pin(18), scl=Pin(19), freq=400000)\ntouch = AXS5106L(i2c, reset=Pin(20, Pin.OUT), int_pin=Pin(21, Pin.IN))\ntouch.reset()\nprint(touch.touch())  # (x, y), or None\n```\n\n`touches()` returns all reported contacts (up to two). `touched()` tests the\nactive-low interrupt line. `sleep()` writes the controller sleep command.\n\n## Protocol notes\n\nThe controller's normal 7-bit address is `0x63`. The data sheet specifies a\nregister-address write followed by a delay of more than 45 µs before the read;\nthe driver implements that transaction rather than relying on a platform's\ncombined-memory-read behaviour. The touch frame begins at register `0x01` and\ncontains gesture, contact count, then 12-bit X/Y coordinates.\n\n## Test\n\nOn a host with pytest installed:\n\n```sh\npytest -q\n```\n"
}