Levelshifter Analysis

I ran many tests on different level-shifters and setups to bring a bit more light into the topic. Here are the results:

All tests done with ESP32 C3, my custom controller uses a 74HCT2G17.
The modified I2C levelshifter use an addtional pull-up resistor to 5V on the output and according to the datasheet is safe for ESP32 and ESP8266, even when using all four channels.
The little additional board on the I2C shifter contains a resistor and a zener diode to drop the data level to 3.0V as that was the only way I could get the leds to not work / flicker.
The black wires are about 2m long and are to represent a ‘loose wiring’, the grey cable is 4 wire telephone cable, 5m long where I used two wires and left two open.
In all tests where the result is ‘LEDs work’ I tested with a supply voltage of the maximum allowed 5.3V on the WS2812 to represent the worst case for data level.
My take-away is this:

  • 74HCTxx is by far the best option
  • I cannot recommend the TXS0108 at all, it is a hit and miss
  • unmodified I2C shifter does not work in general, if it does work, it usually works without it too
  • modified I2C shifter with an additional 10k pullup is quite ok if the wiring is short
  • modified I2C shifter with an addtitional 1.2k pullup works fine up to 2m but puts quite a bit of load on the GPIOs used, still within specification though but power consumption goes up and ESP heats up more, some controllers may not take this well.

here is a foto of the hardware used:

what stripes are in use for testing
as most strugle with the 12V Stroipes as also with theWS2813/14/15 versions

thank you for the Work

Interesting test. I wonder what it would look like using the new long range extensions from YPS https://yourpixelstore.com/product/yps-extensions/

@Quindor -Just tagging you as you may find interest in this topic.

1 Like

I talked to @dedehai quite a bit about this on the Discord already but awesome to see the test graphs but it kind of panned out like we both expected, the 74(A)HCT is the best to use. There are likely also other/newer versions available but I’ve personally not seen a reason to move past this one since it performs so well and generally isn’t expensive.

They are a bit harder to use DIY though and that’s why people often deviate to other options which sadly, absolutely don’t perform the same.

And that YPS long range thing, no clue what they are doing, personally I feel like if you want to go long-range, just go differential. Yes you’ll need a sender and receiver board for that, but at least you’ll know you can now throw a data signal 500m/1600ft and it’ll still be fine, it would also still be a lot cheaper?
(P.s. not sure if those YPS extensions are maybe just for power and then they are just normal wires with a convenient connector? It’s a bit unclear what the products supposed to do to me…)

Yea I agree the guaranteed solution and cheap solution being the diff’ boards.

I am not 100% sure what the deal is with the long range cables, but I do know it is for long range data as well as power. I saw Minor talking about them a little bit in a FB live video from one of the Christmas shows or maybe it was @ Transworld I forget. I did see someone say something on FB that the wire is using 14 or 12 ga for the power and 18ga for the data. Something about the data seems to work best with 18ga. The truth to it…who knows. If they can really send data 200ft with just that wire, I wonder what magic copper they have twisted in there lol

1 Like

I used WS2812. As mentioned wherever I wrote LEDs work I would expect also 12V/24V variants to work (except maybe the last one, modified I2C shifter with 5m cable).

About that long range thing @Jinx: I could not find any pictures of it so no idea what that is. In general it is not a big deal to send signals a longer distance, at the speeds we are talking here if done right even a single ended signal can work for 100m or so but using differential signaling is just the safer bet so that’s what they are probably doing. The wire gauge does play a role in signal damping but that is a whole different topic and at these speeds and distances is negligible (at least up to AWG 30) so I am not sure why they would even mention that.


I ran another test to check what the maximum wire length for the TXS0108 is that still works. The limit seems to be somewhere in the 50cm area, it works with 30cm but does not work with 60cm.
That is the cable length at the output of the TXS0108, the input wires can be longer, but I did not run any tests on that, it may require a data resistor at the ESP output.

I have been using ADUM1200 or ADUM1400 as level shifter successfully.
For the long distance I’ve used a simple RS485 board from amazon on the one side and on the other side a small PCB from Radig :

there is also a 12V variant. Cable for this should be shielded twisted pair.

I’ve used this one succesfully. never put my osscilloscope on it. maybe i should.

it’s labelled “I2C converter”

yes, that is a classic I2C converter. In my tests I used this but R4 is 5k in one case and 1k in the other. the ‘unmodified’ one is what you are showing and it does not really work as it is too slow (it may work in some setups but not under my test conditions which are also valid for 12V strips)

Here is how I modified the I2C shifter, for everyone wanting to attempt this ‘hack’:

1 Like