tasmota lcd display in stock

The display driver is able to display predefined setups of text or user defined text. To display text using DisplayText set DisplayMode to 0, or set DisplayMode to 1 for the HT16K33 dot-matrix display.

To use the seven-segment-specific TM1637, TM1638 and MAX7219 Display- commands, set DisplayMode to 0. Parameter LCD Display OLED Display TFT Display 7-segment Display (TM163x and MAX7219) 0 DisplayText DisplayText DisplayText All TM163x Display- functions

The DisplayText command is used to display text as well as graphics and graphs on LCD, OLED and e-Paper displays (EPD). The command argument is a string that is printed on the display at the current position. The string can be prefixed by embedded control commands enclosed in brackets [].

In order to use the DisplayText command the DisplayMode must be set to 0 (or optional 1 on LCD displays) or other modes must be disabled before compilation with #undef USE_DISPLAY_MODES1TO5.

In the list below p stands for parameter and may be a number from 1 to n digits. On monochrome graphic displays things are drawn into a local frame buffer and sent to the display either via the d command or automatically at the end of the command.

Pfilename: = display an rgb 16-bit color (or jpg on ESP32) image when file system is present, Scripteditor contains a converter to convert jpg to special RGB16 pictures See ScriptEditor Ffilename: = load RAM font file when file system is present. the font is selected with font Nr. 5, these fonts are special binary versions of GFX fonts of any type. they end with .fnt. an initial collection is found in Folder BinFonts

Draw up to 16 GFX buttons to switch real Tasmota devices such as relays or draw Sliders to dimm e.g. a lamp Button number + 256 - a virtual touch toggle button is created (MQTT => TBT)

When a file system is present you may define displaytext batch files. If a file named "display.bat" is present in the file system this batch file is executed. The file may contain any number of diplaytext cmds, one at a line. You may have comment lines beginning with a ;

E-Paper displays have 2 operating modes: full update and partial update. While full update delivers a clean and sharp picture, it has the disadvantage of taking several seconds for the screen update and shows severe flickering during update. Partial update is quite fast (300 ms) with no flickering but there is the possibility that erased content is still slightly visible. It is therefore useful to perform a full update in regular intervals (e.g., each hour) to fully refresh the display.

The data sheets of the TFT and OLED displays mention burn-in effects when a static display is shown for extended periods of time. You may want to consider turning on the display on demand only.

The EPD font contains 95 characters starting from code 32, while the classic GFX font contains 256 characters ranging from 0 to 255. Custom characters above 127 can be displayed. To display these characters, you must specify an escape sequence (standard octal escapes do not work). The ~character followed by a hex byte can define any character code.

The I2C address must be specified using DisplayAddress XX, e.g., 60. The model must be specified with DisplayModel, e.g., 2 for SSD1306. To permanently turn the display on set DisplayDimmer 100. Display rotation can be permanently set using DisplayRotate X (x = 0..3).

E-Paper displays are connected via software 3-wire SPI (CS, SCLK, MOSI). DC should be connected to GND , Reset to 3.3 V and busy may be left unconnected. The jumper on the circuit board of the display must be set to 3-wire SPI.

Waveshare has two kinds of display controllers: with partial update and without partial update. The 2.9 inch driver is for partial update and should also support other Waveshare partial update models with modified WIDTH and HEIGHT parameters. The 4.2 inch driver is a hack which makes the full update display behave like a partial update and should probably work with other full update displays.

In black and white displays, a local RAM buffer must be allocated before calling the driver. This must be set to zero on character or TFT color displays.

Universal Display Driver or uDisplay is a way to define your display settings using a simple text file and easily add it to Tasmota. uDisplay is DisplayModel 17. It supports I2C and hardware or software SPI (3 or 4 wire).

Initial register setup for the display controller. (IC marks that the controller is using command mode even with command parameters) All values are in hex. On SPI the first value is the command, then the number of arguments and the the arguments itself. Bi7 7 on the number of arguments set indicate a wait of 150 ms. On I2C all hex values are sent to I2C.

bit 2: enable async DMA, 0 wait for DMA to complete before returning, 4 run DMA async in the background. This later mode is only valid if the SPI bus is not shared between the display and any other SPI device like SD Card Reader.

# Scripter is the nost convenient way to edit and develop a uDisplay driver. On every scripter save the display is reinitialized and you immediately see results of your changes.

There are also many variants of each display available and not all variants may be supported. #define directive Description USE_DISPLAY Enable display support. Also requires at least one of the following compilation directives

tasmota lcd display in stock

Problem: The LCD 2004 or LCD 1602 Display, for which the Tasmota LCD driver was written, uses a different wiring between the i2c expander (PCF8574) and the HD44780 Display.

I uses a PCF8574A where the address lines are set to 0, so I also have to patch the LCD_ADDRESS2 i2c bus address in xdsp_01_lcd.ino from 0x3F to 0x38.

In my_user_config.h enable USE_I2C, USE_DISPLAY_LCD, USE_DISPLAY, USE_DISPLAY_MODES1TO5 and comment all i2c devices which uses the same i2c address. Otherwise a i2c address conflict could happened which prevent Tasmota from recognizing the Display (i2cscanreturns an error). I also activate Script expressions and if statements.

Ok, time to build the firmware. Get tasmota and the patch (created with git format-patch HEAD~1 –stdout). Patch is written for 9.3.1 (cmmmit 92c0eb000) but if there are no breaking changes it should also run on newer versions.

Setup the basic config (WiFi, MQTT..), open the Webfrontend and go to the (web) console. If the LCD display is recognized there should be such an entry:

tasmota lcd display in stock

This first week of Feb 2021 I received lots of gadgets and some more displays from Banggood including an old favourite – the ILI9341 – good, cheap LCD display – which I’ve always supported in ESP-GO – but now I want to run on an ESP8266 (again) this time using Tasmota. Here’s the ILI9341 display first: 2.4 Inch 240*320 Color HD LCD TFT Screen SPI Serial Display Module ILI9341

The setup for the display wasn’t QUITE as indicated on the Tasmota site – it seems that displays are not yet a high priority there, but with help I managed to get it running – here’s the template for Tasmota-display standard build – no need to compile a special. Note that the display does NOT have a CS pin but this has to be defined in Tasmota for the display to be recognised. I hooked RESET to RST and the backlight to pin marked BLK on the display. It SEEMS that Tasmota display support is a bit primitive as yet.

Note the ILI9341 CS and DC settings – the SPI versions don’t work – see above and this works. Also, CS is not used on these boards but needs to be defined in Tasmota or it won’t recognise the display. In the end, easier done than written about so here we go – 4 lines and some coloured text. The software also does boxes and circles.

I noted in an earlier Tasmota-display.bin development update some severe font issues and I spent days talking to the author of some of the Tasmota displays – Gerhard Mutz – he recently included a 7-segment font – and thanks to a little encouragement these will work on ESP8266 (that’s what I’m running my tests on to be sure).

I’ve also learned about the Tasmota file system and it is now possible to run PNG files (losing the transparency) through an editor to convert them into .RGB files so that icons can be easily added to Tasmota-displays – I expect this is in the tasmota-display.bin file but certainly in a custom Tasmota file – also font 5 onwards are optionally added RAM fonts. In essence we can have a small number of fonts including 7-segment as well as a range of colour icons available to use in Tasmota for the ILI9341. For me it has been a goal to get this facility for many months. The file system makes it possible to store the icons in FLASH and checking earlier I noted not far short of 2MB available for this purpose.

Lots of fonts are available here but beware they take up RAM. “displaybatch” lets you run files stored in the file system (which has to be enabled depending on your tasmota build). I run it with display.bat (the file who’s contents can init the display on powerup – currently not 100% perfect at powerup) or other .bat files – you need a leading slash before the file name. Example: displaybatch /display2.bat

Given a graphic in the root of the Tasmota file system and also a file called display.bat (with for example [z] in it to clear the display) then running displaybatch /display.ini produces the following display: (the virus image wasn’t my idea:-) )

With success on the ILI9341 board from Banggood, I turned to a model JYC150-7P SPI SSD1351 OLED board. The board has a link set for 4-wire SPI, I changed the link over to 3-wire SPI. Sadly no matter what combinations I tried – despite help from a couple of guys on the Tasmota displays DISCORD channel, we still got no-where. I found this document – which seemed to clear up what to do with the SPI DC wire, reset and CS – but.. nothing but black from the display.

In the meantime I tried a very old SSD1351 (2013 ILSoft Ltd) display board. Here are the settings I used after changing the link (cutting) on THAT board to set to SPI 3-wire mode with DC grounded, CS wired to Tasmota SSD1351 CS (see Tasmota config page) and RST to ESP8266 RESET. This board has SCK and SDI which go to the Tasmota SPI CLK and SPI MOSI :

displaytext [z][x0y0h128x0y127h128x0y0v128x127y0v128][x5y3C31s1f1]Working[x5y23C30735]Color is purple[x5y43C4032]Green text[x5y63C63488]red text[x5y83C64800]Orange text

No other settings in Tasmota-displays.bin.gz were used to achieve the above. See this page for the full colour codes (indexed did not work – I used the full colour codes).

I should take this opportunity to correct some colour coding on the Tasmota page as relates to this and similar displays. The page refers to green as code “8”. As we are looking at a display that uses 5 bits, 6 bits and 5 bits for R,G,B respectively, full green is in fact 64*63 i.e. 1984.

Once again this display works well but feature support for displays in Tasmota still leaves something to be desired – more fonts would be good and not just scaled up. In the example to the right above, I’m using codes which may look awkward at first – but are merely text – with commands embedded in square brackets – z for CLEAR SCREEN, x and y for POSITIONING, f for FONT, C for COLOUR, r for RECTANGLE and R for FILLED RECTANGLE:

Another great gadget – see photo below: You’ll see a white dolphin I picked up at a seaside market in Spain early summer 2020 – they are widely available – they come with a wooden base + USB lead and have a bright, warm, single-colour (white) display – but the SHARK came from Banggood (described as “Shark 3D Night Light 7 Colors Changing LED Touch Switch USB Table Lamp“), has a solid-looking black plastic base, USB lead and has full RGB including touch button options for any single colour or slowly cycling through the colours. I love it and so does my wife. The shark base in the photo above is sitting on a USB battery power pack I happened to have handy.

tasmota lcd display in stock

Xmas DIY projects part 2: ESP8266 based central heating monitor (up to 4x DS18B20 thermal sensor; up to 3x 230V AC input to keep track of when which pump is enabled). Hardware athttps://gitea.osmocom.org/laforge/esp8266-projects/src/branch/master/esp8622_heating_monitoring…using stock Tasmota as software, feeding mosquitto->influxdb->grafana

tasmota lcd display in stock

Xmas DIY projects part 2: ESP8266 based central heating monitor (up to 4x DS18B20 thermal sensor; up to 3x 230V AC input to keep track of when which pump is enabled). Hardware athttps://gitea.osmocom.org/laforge/esp8266-projects/src/branch/master/esp8622_heating_monitoring…using stock Tasmota as software, feeding mosquitto->influxdb->grafana

tasmota lcd display in stock

Light up your Arduino and Raspberry Pi display needs with this high resolution, full colour OLED display module! Perfect for graphics, gauges, graphs, even make your own interactive display.

Unlike LCD displays, OLED displays use less power the less pixels are lit up. Measurements taken with VCC = 5V, room temperature, default brightness and contrast settings.

tasmota lcd display in stock

The origin of this discovery is the high interest in developping a custom firmware for the NSPanel. While the stock firmware doesn’t look bad, many prefer a solution compatible to popular home automation systems like Tasmota. The" good" news is that the NSPanel at its heart is a Nextion Discovery screen, so creating alternative UIs is as easy as with any other Nextion screen***. Or at least that’s what we thought. Every custom firmware suffered of the same serious touch offset of about 30 pixels. The stock UI however doesn’t. Didn’t take long to find out that the stock firmware used a so far unknown command: lcd_dev. Truth be told, we don’t understand what its capabilities are but copying it with the exact arguments as used in the Sonoff firmware fixes the touch offset.

With regards to the lcd_dev command I can understand the point. However, for draw commands like qrcode I can’t tell you why they’re hiding it. The obvious thought was it must be an unstable/new/not-ready/…" command. So I had a look at the QR component and guess what. It uses this exact command internally (you’ll find the same instruction in the TFT file in both cases). This is not surprising; actually the opposite would be much more suprising. But it pretty much defeats every reasonable argument for their behavior.

As a “proof of concept” I created a demo that makes a QR code walk around the screen, updating itself with its current coordinates. Additionally it shows you the current CPU load. You could already do the animation part on the intelligent series but this demo works on all series. There are more useful use cases for this of course; being able to display QR codes from an Arduino can be very useful! In my opinion way too useful to hide.

In my opinion the Sonoff NSPanel is a perfect example of what Nextion is not suited for. Nextions selling point is that it makes simple to medium UIs very quick to develop and that you don’t have to code the widgets yourself. Drag, drop, done. That’s the reason why people buy them and why their high price (compared to simple LCD panels) is justified. Sonoffs UI is not simple, requires developing custom widgets anyways and it’s not a low volume product.

tasmota lcd display in stock

Allows Tasmota Device manager (tdmgr), which is a python GUI application to run in a docker container, and uses noVNC (HTML5 web based VNC client) to let you view tdmgr remotely.

Tasmota rules to update to MQTT the status of a washer and dryer, based on power monitoring (Using Sonoff POW V2 devices). Automation rules use this to notify my phone when the washer or dryer have finished.

Use of a Viewsonic VPC101 All-in-one PC as a home automation display (Home Assistant) running Debian and getting the touch screen working and calibrated