Step 3: The level shifter

Picture of The level shifter
Note : If you bought a bluetooth module from sparkfun , skip this step, and head to step four.

Since the Arduino's serial output (Tx pin) is 5-volt logic, if we connect it directly to the Rx pin of the Bluetooth module - which is using 3.3-volt logic -  it will fry the Bluetooth chip. Fortunately, the Arduino supports 3.3-volt logic in reception (Rx pin), so no complex circuit is needed. All we have to build is a simple voltage divider :

- take your breadboard
- grab the resistors and some jumper wires
- connect one end of the 20k resistor to the ground
- connect the other end of the 20k to the 10k resistor
- connect these two ends to the Rx pin of the Bluetooth module
- connect the last end of the 10k resistor to the Tx pin of the Arduino (pin 1)
- check the photos to see if you've wired it correctly
- you're done

Now, head over to step 4 : Wiring everything
merlin132 years ago
Awesome instructable, thank you so much for all the work and the details. I got the cheaper BT module and all the steps worked great! Just one thing: the Test app in the Amarino examples is set to 57600 baud - I used it as is and nothing worked. Thought I messed up something till I decided to change it to 9600 and all worked great. It looks to me that 9600 is the default setting - is there a way to change it? Thanks again for this awesome project!
bwrussell3 years ago
Glad I stumbled on this page before my BT module showed up for a different project, probably would have cooked it with 5 V. Thanks!
francisroan3 years ago
hey thats a gr8 post !! im using a aubtm 20 bt module which is a 3.3V module !! so could i use the same level shifter principle u used? and i dont have a 20K resistor so can i use two 10K resistors together?(like one after the other??(serial))