Hey, let’s build a level-shifter! As I described earlier, the RPi serial ports operate at a measly 3.3v while the rest of the serial RS232 world is throwing around 5v and more. So I built a little device to shift the 3.3v to 5v.
This came from some anonymous internets genius and works like this:
When input is 0V,Q1 is OFF and Q1’s collector will be 5V,then Q2 will be ON, and Q2’s collector is at 0V (as Vce of Q2=0). When input is 3.3V,Q1 is ON and Q1’s collector will be 0V(as Vce of Q1=0),then Q2 will be OFF, and Q2’s collector is at 5V. It’s simple two NOT gates combined. :D
There you go. Now you understand.
So I breadboarded one up. I don’t have a large collection of transistors. In fact I have two rattling around in my kit. It seemed like magic that the two I had were the two I needed. Or maybe they are just common transistors. P2N2222A?
I tested the output and was surprised to find that the output which should be between 0-5v depending on what was output on the TX line of the serial port, seemed to always be High at 5v. Did I mess it up? I tested the incoming 3.3v TX line, and it was always High too. Why was that? Research, research. Apparently, the RPi TX serial line is normally high. Okay. I can see the line voltage drop when I send characters to the port. Is that right?
Oh and I had messed up some RPi boot options where you had to wrest the serial line away from the system which wanted to use it as a system console. I fixed that.
I hooked the output of my level-shifter to the Betabrites. Guess what?!
It still didn’t work.
I guess I will just have to wait until I get my little MAX2323 device in the mail.