Do you have a good low impedance ground connection between the devices? This sounds like there is something else going on.
Ask Electronics
For questions about component-level electronic circuits, tools and equipment.
Rules
1: Be nice.
2: Be on-topic (eg: Electronic, not electrical).
3: No commercial stuff, buying, selling or valuations.
4: Be safe.
Looks like it. I measured the cable and I got .1-.2 Ohms on every pin, ground included. I replaced both the computer and the sensor device in question with new units and the behavior is the same.
I got an interesting solution proposed in StackExchange - to use a buffer instead of messing with the pull-up. I ordered some parts to try it out.
Do you have any idea what "open drain" means in the context of buffers?
Problem you are having could be
- output impedance of the signal generator you use to generate the square wave. When you set it to low, output impedance of the signal generator builds a voltage divider together with the internal pull up, and the device ends up sensing a higher voltage than "low". This is something you can see if you have an oscilloscope, try to hook up a probe to the input and ensure whether you get what you set in the signal generator.
- some signal sources have no or limited capacity to drain current. And when you set it to low, this is exactly what it us supposed to do, drain current from the internal pullup.
As you mentioned in another comment, solution is a simple buffer. This could be an opamp, but even a simple nmos transistor should suffice (open drain as you said). But you need yo be careful with current ratings of the transistor, which you can easily calculate by dividing 5V by the pull up resistor. Send a message if you need help.
Before these, I suggest you yo use an oscilloscope or multimeter to measure the voltage when it is supposed to be low, and see that in fact the problem is that voltage at the input doesn't go "low".
Thanks for the explanation!
I measured the signal generator alone, not connected to the input. It goes to 4.5V high and 0.001V low. Then I connected it to the input and measured at the input. I got 4.5V high and 1.1V low.
Also I ordered the 74LVC1G07 buffer along with a breakout board which should allow me to hook it up inline and test. I'll report back when I do.
It should do the trick I think. If you are working on electronics a lot, you may consider buying a breadboard and variety of resistors, capacitors and nmos, pros, bjt transistors in bulk for quick fixes instead of waiting for orders to proceed. Have fun
It works!
I just built this monstrosity, tested and the signal is correctly detected by the computer. 👌
Now I just need to wire it properly.
Well done, good to hear