# Please help on manipulating I2C LCD on Microbit

**URL:** https://forum.makecode.com/t/please-help-on-manipulating-i2c-lcd-on-microbit/29663
**Category:** micro:bit
**Created:** [July 12, 2024, 4:05am UTC](https://forum.makecode.com/t/please-help-on-manipulating-i2c-lcd-on-microbit/29663 "2024-07-12T04:05:24Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![windflower28](https://avatars.discourse-cdn.com/v4/letter/w/b19c9b/32.png) [@windflower28](https://forum.makecode.com/u/windflower28)
#### Post date: [July 12, 2024, 4:05am UTC](https://forum.makecode.com/t/please-help-on-manipulating-i2c-lcd-on-microbit/29663/1 "2024-07-12T04:05:24Z")

</div>

Hello everyone,

I recently acquired a high-quality 20x04 LCD with I2C protocol support. While I can manipulate the device using the MakerBit LCD2004 extension, I’ve noticed that its functionality is quite limited. To fully utilize the capabilities of this LCD, I believe I need to learn how to work with the I2C protocol directly on Microbit, without relying on any additional extensions.

Although I’ve read several materials on the principles of I2C communication, I’m still unsure how to practically implement it on Microbit. I’m eager to explore step-by-step tutorials that can guide me in using I2C to drive the LCD effectively.

If anyone knows of helpful resources or tutorials, I’d greatly appreciate your recommendations

P.S.  
MakerBit LCD2004 extension I used:

> **[GitHub - 1010Technologies/pxt-makerbit-lcd2004: MakeCode extension for I2C...](https://github.com/1010Technologies/pxt-makerbit-lcd2004)**
>
> MakeCode extension for I2C LCD 2004 displays. Contribute to 1010Technologies/pxt-makerbit-lcd2004 development by creating an account on GitHub.

---

<div class="post-metadata">

### Author: ![pythom](https://avatars.discourse-cdn.com/v4/letter/p/54ee81/32.png) [@pythom](https://forum.makecode.com/u/pythom)
#### Post date: [September 14, 2024, 3:46pm UTC](https://forum.makecode.com/t/please-help-on-manipulating-i2c-lcd-on-microbit/29663/2 "2024-09-14T15:46:43Z")

</div>

Hi, the easiest way to send the value to the I2C peripheral is to use the `pins.i2cWriteNumber` block (from `pins > more > i2c`).

Example:

```typescript
pins.i2cWriteNumber(
ADDR,
VAL,
NumberFormat.Int8LE,
false)

```

`ADDR` is address of device and `VAL` is command to control the LCD2004. Both can be found in manual for LCD2004 or in the makerbit extension. Also, the extension [https://github.com/1010Technologies/pxt-makerbit-lcd2004](https://github.com/1010Technologies/pxt-makerbit-lcd2004) uses the core library for LCD2004 [https://github.com/1010Technologies/pxt-makerbit-lcd-core](https://github.com/1010Technologies/pxt-makerbit-lcd-core), so there you can start.  
You can also create your own extension. If you’d like to, follow the instructions here: [https://makecode.com/extensions/](https://makecode.com/extensions/).
