Low power serial bluetooth module with Arduino
There are two main sets of characteristics quoted for pins, absolute maximum ratings and typical ratings.


  The HC-06's datasheet says it will accept input at 3V - 4.2V with 20mA - 40mA 


Those are absolute ratings. The pin is rated to handle 3V to 4.2V and 20mA - 40mA current. In a normal circuit, digital input pins will draw very little current, as they are CMOS logic gates. There might be a pull-up resistor, that connects the pin internally to Vcc, or a pull-down resistor, that connects the pin internally to GND, which will increase the current draw.

Without the pull-up or pull-down resistor enabled, the pin has very high input impedance. Your proposed one resistor circuit looks like this:







simulate this circuit &ndash; Schematic created using CircuitLab

You effectively have a voltage divider with the other resistance being the input impedance of the HC-06 input pin.

So the voltage on the RX pin with 5V on the Arduino TX pin would be:

$$ V_{RX} = 5V \frac{R_{really\,really\,big}}{R_{line} + R_{really\,really\,big}} \approx 5V$$

This is outside the maximum voltage rating.

Solution

The solution is to use some kind of level shifter. The resistors in the divider should be high enough not to violate the Arduino maximum current output and much less than the input impedance of the input pin. They also must be low enough that the input capacitance of the pin doesn't 'smear' the signal too much (slew rate). You can think of the capacitance as resisting the change in voltage, so sharp inputs start to get rounded off: (image taken from http://www.johnloomis.org)



For you quoted figures we would then have:

$$ V_{RX} = 5V \frac{\left(\frac{1}{20K} + \frac{1}{ R_{really\,really\,big}}\right)^{-1}}{10K + \left(\frac{1}{20K} + \frac{1}{ R_{really\,really\,big}}\right)^{-1}} \approx 5V \frac{20K}{10K + 20K} \approx 3.3V$$

In Arduino land, people would by a logic level shifter board for this purpose. One common one has a voltage divider for 5V TX to 3.3V RX, and a transistor for 3.3V TX to 5V RX. Others have transistors both ways, so that the voltages can be different from 5V and 3.3V as using a voltage divider the ratio is fixed, and to effectively have a very low output impedance on the TX pins and thus avoid slew rate problems.