Alternative open collector level translation circuit.

Thread Starter


Joined Aug 6, 2021

This is my circuit below and would like to see if I can improve the circuit.

I have open collector devices, therefore I have used the following design.

What happens if my external devices are not open collectors e..g 5V pulse, when it's connected to the Input Signal port? Can there be a circuit or even an IC, that would send a signal to my microcontroller regards less of if the signal is an open collector or not?


By the way my uC works on 3.3V


Joined Oct 2, 2009
I am not quite sure what are your requirements.

If the device output is open collector then you need to provide a load which is usually a pull-up resistor of 1k-100kΩ to a+V supply. If your MCU input expects a voltage no greater than 3.3V then you need to ensure that the signal does not exceed 3.3V.

There are various options, passive using resistors and diodes, and active using transistors, level translators, opto-isolators, etc.

Thread Starter


Joined Aug 6, 2021
Have you consider mosfet? 2n7000? What is the reason for two? Inversion?
Doesn't seem like the full story is there!
The reason for 2n3904 is that I have a few full reels of this component and wanted to use them up.

The reason for two of this component was to avoid changing my firmware for one particular sensor device

The aim to keep the design a little flexible so i can input any voltage signal up to 12V and monitor a pulse.

Thread Starter


Joined Aug 6, 2021
Put a 10kΩ pull-up resistor from the collector of Q1 to 3.3V.
Oh yes, i was first planning to use internal reistors , but i guess an external one is better


Currently incoming signal is open collector and the device is powered with 12V, but how can I modify it so in the future if the signal is not open collected (e.g. 3.3V or 5V) it would not damaged anything.
Last edited:


Joined Oct 7, 2019
Current from 12V flows through R3 and turns on Q2 all the time. When Input_Signal is at 0V, Q2 is on.
Maybe R3 should go from Base to Ground.


Joined Aug 7, 2020
If you leave the pull-up resistor on your microcontroller switched on, then it doesn't matter whether the device driving the input is open-collector or it isn't - it will work in both cases.