I could NOT get that Bluetooth JY-MCU to work, until I used the 5 volts not the 3.3 volts.  Got that.  The voltage range for the JY-MCU is 3.6 to 6 volts, which means that 3.3 volts is not equal to 3.6 volts.  Duh!

To help with the troubleshooting as I stated I simplified everything and used the terrifically simple program written up in the blog at:

 http://learning.grobotronics.com/2013/07/communicating-using-bluetooth-hc-06/

Now I have put together the electrical circuit for the sample code found at:

Bluetooth communication between Arduino and Windows 8.1

And got it to work!  Yippee!  Not getting this to work has really stressed me out.  But here are my findings about using the JY-MCU with the HC-06 Firmware (I have ordered JY-MCU with the HC-05 to test the firmware).

  1. If there is no traffic between the JY-MCU and the paired PC or Phone, then the pairing is appears to be lost after about 10 seconds (this may be a specification), I could be wrong, let me know. 
    • Using the first link is the minimum code that provides a keep alive link for your applications
  2. Use the 5 volt output from the UNO or Arduino platform.  If you are using, 3.3 volts, there appears there could be a problem.  . 
    • I know that is a repeat, but even the manufacturer document could be confusing, but with other chips on the substrate the 3.3 volts may not get to all of the chips and cause the random failures.
    • Link to datasheet:
      • HC-0X datasheets
      • There are a bunch of websites that have more complete instructions
  3. The HC-06 firmware has a limited set of serial commands.  If you can afford the HC-05 get it instead, make sure it has the leads soldered, many do not.

The Bluetooth communication between Arduino and Windows 8.1 is complete and works as written.  With a “but” you need the Visual Micro add-in for your Visual Studio. http://www.visualmicro.com/

Why did I repeat the EXACT same sample in my blog?

Lack of imagination?  Or just “level” setting my Arduino effort?  Sort of both.  But I have found that it is important to check that sample code works before I rip it off and use it in my apps.  MSDN samples usually work, but normally use some sort of weird UI interface which I have no interest in learning, as do many others.  The interface in this app is simple.  But what about this sample code?

  1. The connection is made unless you run the *.ino file first, for some reason the BT will not function without the code being reset.  This can be tricky if you are using a proto shield of some sort, I just use the Visual Micro and it jams in the code with a reset.
  2. Even if everything appears to be good, you have paired with the Bluetooth and when you connect it won’t connect.  Still haven’t troubleshot this, but will.  In fact I have not read the code, that would be cheating if I am just testing the software. 
  3. If the Windows 8.1 software loses the BT connection, but the BT LED is steady (no blinking), the app no longer functions and the Red LED may stay lit.
  4. Pressing Green turns on the Green LED, pressing it again, the program appears to crash. (Added observation: If the program has been running for 2 minutes or so, if the Green button is pressed 10 times the program freezes, at least one time).
  5. Connecting to the BT breaks often and randomly, although it might have something to do with the asynch code.

Ok, suggest you take a look at the app if you have a UNO and Windows 8.1, seems to work most of the time, it is frustrating, but you can fix it right?  It is a good starting spot.  Here is my prototyping board.  You can see the variable resistor below, the two LEDs, resistor  and BT module.

WP_20140605_13_29_26_Pro