This is going to take a while (1m^2).

So @Yves_BAZIN , here is what I found out

  1. yeah, my first set of 4 lines stopped working due to a bad solder job. I did test each set of 4 with a tester, but after moving things, the solder point failed somewhat.
  2. I have gotten things to work with your code for a short time, and then it started failing in strange ways again. At this point it looks like an electrical problem, impedance or something (more below)
  3. the great news (for me) is that @Sam_Guyer 's code works with 16 line output, it just works. It does work at half the speed of your code, so I’m guessing it is using RMT to output to 8 lines and then uses RMT to output to the next 8 lines, taking 2 cycles instead of one cycle for your code.

I’m going to guess that RMT outputs things with a better/stronger signal than yours (maybe the wave is more “square” or lasts just a bit longer) and my electrical connection is somehow not perfect enough. With your code, your “less strong” signal gets damaged just enough that with maybe a slight cross talk between the wire ends (I do use twisted pair, but I have 5cm or so at the end that is not twisted anymore, your signal ends up getting damaged enough to look bad.

Hello @Marc_MERLIN nice that this works !!! It looks really good !!! Now can’t wait to see it play some animations of yours !!
Indeed my code seems to be too sensible to background noise and maybe not suitable for more on the go constructions.
I have hc245 for signal amplification after my esp32.
I will still go and work on the 16outputs version to make it more stable.
Thank you having tried my version and help me improved it.
If you have 2 min I would like to see when you run an animation the results with my version maybe it will help me. ;).
Is this for BM ?

@Yves_BAZIN oh yeah, I forgot to say that I’m not running level shifters, so it’s possible that your signal doesn’t quite last long enough to register as a ‘1’ in 3.3V while with 5V it does.
It would take an oscilloscope to compare your signal with the one from the RMT driver, but I’m sure the problem is that your signal is just too borderline for 3.3V output while the RMT signal is good enough.
And while it wasn’t my plan one week ago before those pixels were donated to me, yes, this is going to BM if all goes well :slight_smile:

@Marc_MERLIN I will use an oscilloscope and test that.
By the way how do you power your panel ? How many amperes ?

@Yves_BAZIN here is the video you were asking for https://www.youtube.com/watch?v=7M7psUzHOGU
Interestingly the bottom 8 lines work better than the top 8, but the bottom 8 were the ones that were not working well when I had them on their own.
I’m using a 60A/300W power supply right now on a watt meter and verified that I don’t even hit 100W on the currently brightness, i.e. a 3rd of its capacity (I have a 2nd 60W/300W power supply I need to wire, just haven’t need it yet).
I am using 10 gauge wire you’ve seen in the pictures and it’s thick enough that I get no measurable voltage drop at the end of the line.

As for a level shifter from 3.3V to 5V, I’m sure it would help, I just don’t have room on my board for one and would have to design a more custom board to fit one. It’s possible at some point, but more wiring and complexity than I have time for right now, especially given that it works flawlessly as is (really 0 glitches) with Sam’s RMT code.

@Marc_MERLIN whoua indeed really crazy patterns! Are you using the lastest version of the clocklessblock_esp 32 ?
As it works fine for the second half I tend to believe the wires pick up noise.
If I write sole changes to my code would you be kind enough to test it on your panel ?
Thank you

You asked me to use the old (bigger 20KB) file:
clockless_block_esp32.h -> clockless_block_esp32.h.old
9166 Aug 4 10:09 clockless_block_esp32.h.new
20231 Aug 5 10:46 clockless_block_esp32.h.old
9085 Aug 4 10:08 clockless_block_esp32.h.orig

I tried your .new code (9166 bytes) and it looks broken in different ways. In some patterns the pixels are just the wrong intensity (sometimes too bright, sometimes too dim) although they show up in the right place.
So, the signal is damaged enough to affect the bit values but not enough to send pixels to another pixel location.

@Marc_MERLIN and with the original one ? How does it behave ?

@Yves_BAZIN .orig and .new behave pretty much the same. They might not be identical, but without comparing closely they look the same (vs .old which does look more different)

and sorry, yes, of course I’ll be happy to try new code from you.

@Marc_MERLIN thank you

@Yves_BAZIN ok, so we guessed right. I took some time rewiring everything through 2 level shifters ( https://www.ezsbc.com/index.php/products/ls1.html ) and now your driver works properly.
Now, I have a new problem: https://plus.google.com/+MarcMERLIN/posts/dBBxF54eGN9 but that’s not a problem with your driver anymore :wink:

@Marc_MERLIN thank your letting me know :wink: so 16 parallel output works fine !! I am happy :wink:
For the level shifter I do not know this one I use 74hc245

@Marc_MERLIN what is exactly the difference of hardware set up between when it works and when you have issues ?

@Yves_BAZIN if I connect the data lines directly to ESP32, it works with Sam’s driver, but has lots of issues with yours. If I add the level shifter in the middle, then it works with your driver too (and still with Sam’s). Was that what you were asking?

@Marc_MERLIN no I was referring to the post you added that you have issues with the 3.3v pin

@Yves_BAZIN back to your driver. While it works fine with the 5V level shifters, it would still be nice if your library could be a bit more straightforward to use like @Sam_Guyer 's that doesn’t require a special show command or special setup functions (well, they’re still there, but hidden in his library, and not needed for the user).
Basically putting all that stuff in my code every time I use ESP32, is just ugly and would be nicer if it were nicely hidden in your lib instead :slight_smile: