tasmota lcd display brands

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 brands

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 brands

I never had to use one, as I turned a Sonoff Basic into a Sonoff TH equivalent by adding a DHT11 sensor to it and flashing the switch with Tasmota. This turned the $5 into a smart controller for my DIY Smart Heating System. I don’t think I will replace the current setup with Sonoff TH Elite (even though I could), as I already have a ZigBee based thermostat lined up for this role.

There is no denying that the Elite series of the Sonoff devices have really handsome looks! DIN rail mountable by default, Sonoff TH Elite sports uniform white body with minimal prints. The surface is dominated by an LCD display that refreshes the data every 5 sec. While a display highlight would be nice, it’s unlikely you will ever take on electrical work in the dark, so I will let this one slide.

The display will show you the current temperature and humidity of the attached probe, so you don’t have to reach for your phone to troubleshoot things. I only wish that display had more information present like network details, schedule etc as in reality, it’s easier to pull out the eWeLink app and access the data than move to the physical location of your Sonoff TH Elite.

The new interface in the eWeLink app brings features designed specifically for the Sonoff TH Elite. The switch interface has 2 modes – manual, where the sensor data is gathered and displayed in graphs, but the temperature and humidity values have no influence over the relay and the Auto mode in which the state of the relay is driven by the policies set in the app. You will be able to add up to 8 policies for temperature and humidity control where you can control the internal relay of the Sonoff TH Elite with values (higher/lower) from the probe. The schedule for these policies can be also defined so they don’t apply 24/7.

On top of that, the eWeLink app brings the LAN mode for local control, power-on state and inching. Fans of the imperial units will find the toggle for these and units will be converted in the app as well as on the LCD display.

I mentioned that the button on Sonoff TH Elite can change the mode of the relay from Auto to Manual (double click), change is reflected on the unit itself by a barely visible LED. An icon on the LCD would be nice to make the change of mode more visible. A single click on the button changes the relay state. What’s a little bit annoying is the fact that after enabling Auto mode, going to manual mode in the eWeLink app doesn’t override it. You have to go to Auto mode again and disable it.

By default, the LCD screen shows the temperature and humidity data. If your probe only reads one, the other value will be blanked out. These are updated every 5 sec and sent to the eWeLink cloud. Data from sensors is stored in the app but at 1h intervals. There are no aggregation settings to control that and even though the sensor delivers new results every 5 sec, there are no options to retain that information. It can only be used to trigger policies.

The relay on my model (THR320D) was rated for 20A and the dry contact one for 3A. Extra dev pads are exposed on the other side probably to access the LCD IC – so it’s a matter of time before we going to see Tasmota running on it.

I don’t have any information about support for Sonoff DIY mode. It would be nice to see for anyone looking to integrate these with DIY automation without flashing with Tasmota or using eWeLink API.

I’m somewhat impressed with Sonoff TH Elite. It looks nice and brings interesting options to the table including new probes, dry contact relay and an LCD display to make monitoring as simple as possible. As Sonoff TH Elite still keeps the price low, if wanted to use an all-in-one thermostatic switch – this could be a no-brainer. Let me know what you think about the Elite series from Sonoff in this Reddit thread.

tasmota lcd display brands

This clever utility uses a security loophole to trick your Tuya device into thinking that it’s installing an updated version of itself, when in fact it’s replacing itself with Tasmota. This means you can do the conversion without any electrical connection to the device: you don’t need a serial connection, and you don’t need to open the case.

If you only had one device to convert, you can say “N” (or just press ENTER) and Tuya-Convert will exit. You’re now ready to follow the normal Tasmota setup and configure your device.

Tuya-Convert installs a very basic Tasmota binary that will allow your device to connect to WiFi, but it may not be the specific Tasmota build that your device requires for its features to work.

Power up your device, and then follow the usual Tasmota setup process to connect your phone or tablet to its network. Then you can open its web interface, and if necessary you can install a different build of Tasmota that suits your device.

The best place to get information about specific devices is the Tasmota Device Templates Repository. Look up your device there to find out what Tasmota build you need to install, and how it should be configured.

tasmota lcd display brands

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 brands

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 brands

Tasmota is an alternative open-source firmware for devices that are based on the ESP8266 WiFi chipset.  The firmware provides the devices with timers, a web interface, Over The Air (OTA)  updates and sensors support.  It also allows control under HTTP, MQTT, KNX and serial. It is written for the Arduino IDE and PlatformIO.

With the Tasmota firmware installed, your device can read the state of buttons and switches, and many types of sensors for things like temperature, humidity, light, IR, etc. It can also control devices like relays, LEDs, displays, IR transmitters and many more.

In this blog post, we will install Tasmota on the ESP8266 NodeMCU development board using the Arduino IDE. Then, as an example, we will configure Tasmota to toggle the onboard LEDs and one external LED. This will be a good starting point for future IoT and DIY home automation projects.

Once the Tasmota web interface appears, we need to change the module type from the default “Sonoff Basic” to “Generic”. Go to “Configuration” and choose “Configure Module”. Select “Generic” for Module Type and Save.

To test Tasmota on the ESP8266, we will first configure the built-in LED on the NodeMCU board to be turned on and off by using the web interface. On this version of the board, the LED is on GPIO16 (D0).

In the Tasmota interface, go to Configuration and thenConfigure Module. Make sure all the GPIOs are set to “None”. Then set GPIO16 to “Relay1i“. Hit “Save” and return to the Main Menu.

At the top of the Main Menu, you will see a button labeled “Toggle”. Pressing the button will now toggle the built-in LED on the NodeMCU board. This confirms that Tasmota is installed correctly and working as intended.

While we are at it, let’s add some more controls for LEDs. The NodeMCU board actually has 2 built-in LEDs: the second one is on the ESP-12 module itself. This LED is assigned to GPIO2 (D4). So in the Tasmota configuration, set GPIO2 to “Relay2i“.

Now you know how to toggle the GPIOs, you can use Tasmota to toggle relais on the NodeMCU, or use the GPIOs to read values from buttons or sensors. On its own, this is already a very useful application of the firmware.

In the next blog post, we will see how we can use the MQTT functionality of Tasmota. This will let the ESP8288 communicate with applications like Node-Red or Home Assistant, and will turn the NodeMCU into a very versatile DIY device for home automation projects.