Tasmota and 8x8 HT16K33

267 views
Skip to first unread message

Jason Parvu

unread,
Aug 15, 2020, 2:11:24 PM8/15/20
to sonof...@googlegroups.com
Hello All,

I recently picked up a couple of Adafruit 8x8 matrix displays https://www.adafruit.com/product/1052 . After lots of trial and error I've got one working and searching around has not turned up much info. I'm not new to tasmota using it for many sensors, LCD displays and OLED displays even the 7 segment Adafruit module using the same controller.

Questions:

1. is there any better docs? I've read https://tasmota.github.io/docs/Displays/#displaytext-use & https://tasmota.github.io/docs/Commands/#displays and its gotten me this far.
2. How can I get the second matrix working? I found the answer to this was setting the DisplayAddress2 to the 2nd displays address
3. Is there any way to stop the scrolling ?

I appreciate any pointers here. I've been using tasmota for over a year now on a few dozen devices and this is the first time something has really stumped me.

Here are my current display settings:
stat/tasmota/RESULT = {"Display":{"Model":3,"Width":48,"Height":8,"Mode":0,"Dimmer":1,"Size":1,"Font":0,"Rotate":0,"Refresh":1,"Cols":[2,8],"Rows":1}}

This is the current i2cscan:
stat/tasmota/RESULT = {"I2CScan":"Device(s) found at 0x70 0x71"}

Thanks,
Jason

Christian Langanke

unread,
Jan 3, 2021, 1:32:23 PM1/3/21
to TasmotaUsers
Hi Jason,

I use the Adafruit 7-segment display and not the matrix display, but two weeks ago I had the same problem already with only one display , it did not react at all.

First  of all, you may want to see my posting on my issue

  7 segment Adafruit display not working
  https://groups.google.com/g/sonoffusers/c/AA6X7ruGhh0

For whatever reason I assumed that the command I2CScan would make Tasmota automatically use the displays having been found on the bus, but that is not - and possibly for good reasons should not be - the case. Instead you have to configure them.
But even worse, if an address has recently been configured, and no device is attached using this address, on initialization the weblog says sth like "found at address 0x..." - one would think of that a display has been found, but it is only the address that thas been read from the settings.

So one has to configure the addesses being determined by I2CScan:
* In my case of using one display, the command DisplayAddress is good enough,  which deals with the very first of the eight possible adresses.
* In your case with more than one display the commands DisplayAddress1 up to DisplayAddress8 have to be used, where the docs don't tell yet that these commands would exist. I found that only by inspection of the code.

Hope that helps!

Christian Langanke

unread,
Jan 4, 2021, 5:13:40 PM1/4/21
to TasmotaUsers
Hi once again,

today I just got my 16x8 matrix Adafruit feather and just found out that this is not yet supported by tasmota ...

Moreover, when peeking the first time into the code for your 8x8 matrix display, I found that my suggestion for the configuration may be partly incorrect  but I just don't know

it seems that the driver xdsp_03_matrix (8x8 matrix) intitializes differently compared to xdsp_11_sevenseg.

xdsp_11_sevenseg initializes only if the first address has been configured

  iif (I2cSetDevice(Settings.display_address[0]))

while xdsp_03_matrix initializes only if if the second address has been configured

  if (I2cSetDevice(Settings.display_address[1]))

I have to say that I don't understand that scheme ... Andif you always used DisplayAdress without a number for one matrix diplay, AFAIS it should have set the 1st address at index 0, and the xdsp_03_matrix  driver would not have had initialized.

Bye, Chris
Reply all
Reply to author
Forward
0 new messages