Chat freely about anything...

User avatar
By alonewolfx2
#25942
scargill wrote:I see no reason why an ESP should not run an LCD and as for reliability, the Espressif SDK and C make a very reliable combination (I'm using SDK 1.30 but it's been fine for some time now). Two problems - the number of pins - and which display - there is a VERY nice 128*160 LCD display on Ebay etc for no more than £3 or £4 and it produces excellent output - I've only ever seen an Arduino library for this and the SPI code etc means it would be somewhat less than trivial to convert to run on an ESP-12 - really would be handy.

Good point. Now esp8266 has many ported lcd drivers like ili9341-ssd1306-hd44880-pcd8544 vs . yes there is no reason. Esressif working hard and we will have very good sdk very soon.
User avatar
By eriksl
#25947 Please note:

The esp8266 doesn't have hardware i2c support, so it must all be done in software. That may be a good thing, better a good software implementation than a bad hardware implementation (besides the speed, I believe 400 kHz ("fast mode") will really be the highest achievable speed)).

What I've seen though, on various i2c implementations, especially the one from espressif themselves, is that they implement the absolute minimum functionality to get simple devices working. I don't like that approach.

I created a new i2c driver completely from scratch, with the complete specifications at hand and made a fully compliant implementation that way. If something doesn't work for some reason, the app will get a detailed reason and context, other than "it doesn't work" or "it does work" (but actually doesn't, even worse).

The major flaw I've seen is not checking the actual state of an output pin when driving it. I2c works on open drain outputs. That means that if I release it, it will go high. BUT if someone else (one of the i2c slave devices) keeps pulling the line (to gnd), the line will stay low, even when released. That's why the master should always monitor it's outputs. If an output doesn't match it's state, the i2c implementation should raise an error and leave the app to decide what to do (for example, reset the bus and try again or just leave it, in case of a probe).
User avatar
By Venkatesh
#29994 Somebody already done this with esp 12e, lcd 16x2 i2c, liquid crystal_i2c, wire lib. I even tried it, but only one problem my lcd works with 5v and if I connect to 3.3v led displays characters very dim. I am using 3.3v because SCL,SDA (i2c) are connected to GPIO5, GPIO4 and gpios on esp12 are not 5v tolerant. Any suggestions thanks

I used arduino ide for coding and uploading to esp.