So I’m trying to wifi-enable a ceiling fan. It has a super annoying IR remote, basically only reacts to well aimed shots from maximum three meters. At first I built an IR proxy, but at least with the weak transmitting LED I used it also had to be close and well aimed. Then I thought, since the fan has conviniently a sub-board with the IR sensors that gets 3 wires: 5V, signal, ground - why not just throw an ESP32-c3 supermicro in there and don’t deal with IR at all. So I tried a couple things, realised I probably need a level-shifter for 3.3 to become 5V output etc. The problem is not only I didn’t got it to work yet, but even having the transmitter-out pin connected alredy prevents also the remote from working. If I disable the transmitter, it usually works (I think now it stopped because the two BC547 level shifter I built also introduces some pull-down effects?)
So
Is there a way to force a GPIO pin, and particularly one used by transmitter component, to FLOAT unless currently transmitting?
or
Disable the transmitter component, and therfore stop the GPIO pin from being an output /pulled down, and only enable it for transmission?
I have a few ideas how to deal with it circumventing those problems (well basically coding all this in a massive lambda directly toggling the type and state of the GPIO and bitbanging the transmissions) but they sound both effort consuming and risky
Or, I’ll just stick an IR diode in there aimed directly at one of the recievers. Extra points for hacking, but significant penalty for style ![]()