-
Notifications
You must be signed in to change notification settings - Fork 279
Description
I have 2 Tidbyt Gen2 Boards that I've loaded with tronbyt: https://github.com/tronbyt/firmware-esp32. This technically is a fork of the official tidbyt open source firmware. Tronbyt is using a newer version of this firmware
The tidbyt OS firmware uses a very old version of this repo: https://github.com/tidbyt/ESP32-HUB75-MatrixPanel-I2S-DMA/tree/8f284afe7ba4ff369a4427121338e1673026320e
On one of the Gen2 Tidbyt (ESP32-D0WD-V3) (revision v3.1) the display is "fine". Animations look correct and there's no issue. Colors seem a tad off but nothing I'd seriously notice.
On the second Gen2 Tidbyt, running the same firmware/configurtion/evertyhing, animations have red pixel artifacts. They aren't random, the animation will consistently have the same red pixel artifact in the same place (that moves with the animation). Obviously this points to some tolerance issue in the HW assuming the same boards but different manufacturing
I loaded the older OS firmware and the red pixels were gone. I'm not a HW guy by any means so I dug in to figure out what could be causing the issue. One of the first things I saw was this line:
unsigned int _div_num = (freq > 8000000) ? 2:4; // 20 mhz or 10mhz |
versus
As I said, I'm not a HW guy but messing with the _div_num values was clearly the cause of these weird red pixels. At first I tried unsigned int _div_num = 80000000L / freq / 2;
and it worked but really that is just the value of 5 (freq
is 8000000)
I've attached a picture of what I mean by red artifacts. These pixels should be white. With _div_num = 5
they're white. I'm trying to understand what the actual "problem" here is and what is "correct". This may not be the best place for it but the only difference in my tests has been the underlying firmware (current, very old, my custom _div_num calculation).