Had an idea for a product so I did a little research (almost not enough because I initially ordered something that would not have worked) and picked out a Bluetooth module that should suit my needs. Well after soldering it to the breakout board and hooking everything up on the breadboard, I got a blinky light and I could see it on my phone’s pairing screen but could not get it to pair. I knew there was a utility to talk to the module via the UART interface and I had also purchased the Sparkfun FTDI Basic to take advantage of this. Actually, I bought it to talk to the Arduino Pro Mini that I thought I needed to talk with the original Bluetooth module I almost ordered initially and then didn’t because it would not have done what I needed. Unfortunately, the FTDI Basic changes the !RTS pin to a DTR pin in order to automatically reset the Arduino when loading sketches. Not a big deal though because I happen to have a USB to FTDI cable that is used for talking with PIC microcontrollers. Disaster averted.
So I hook up the Rx, Tx, !CTS, !RTS, and ground pins. I initially had the Rx and Tx reversed because I assumed that the label on the cable meant Rx and Tx of the computer so Rx of computer goes to Tx of Bluetooth module and vice versa but alas, it was labeled for the TTL side so Rx goes to Rx and Tx to Tx. I’ve made this mistake in the past but in reverse order. So much for learning from the past.
I installed the KC Terminal app that is used to talk to the module and got it to recognize the TTL cable and open a virtual com port without any driver issues. It should work with Windows out of the box (I’m using Windows 10). Now I’m ready to see what’s going on inside the sleek little metal box. Nothing… Can’t get anything output when the unit boots even though it should be giving me the version, status, and other info. Nothing. I try to throw some commands at it (AT Version, AT Status, …) and still nothing. Obviously something is not right. I check all the solder connections on the board, check the connections on the bread board, check power. Nothing.
Luckily I have a handy dandy oscilloscope that I can slap on the Rx and Tx lines and see if there’s anything happening. This should at least tell me if the module is attempting to talk and maybe I have a bad cable. I get some noisy BS that doesn’t make much sense but definitely no TTL signals that I can readily see. Maybe I have a bad cable. Still, I should see SOMETHING coming out of the module that looks like TTL unless I have something wrong with the module or the wiring between the module and the TTL cable. If the problem is the module then I should see SOMETHING coming from the computer that looks like TTL. I see neither of those things so I feel like I have a fundamental problem with my setup. I go ahead and reread the manuals but don’t find any clues so I go back over the whole circuit, wire by wire. The only thing I see that might seem out of place is I don’t have the TTL cable’s power wire hooked up. I’m powering the circuit externally so I don’t know why I would need 5V from the computer’s USB port but I figure it can’t hurt. OF COURSE THAT’S THE PROBLEM… and I immediately see TTL signals on the Oscope and KC Terminal lights up and talks to me. I’m disgusted but happy that the problem is behind me! Now I can send and receive AT commands to my heart’s delight.
I still can’t get it to pair to anything though and there isn’t a word in the documentation about the pairing process or troubleshooting problems. I’m going to get in touch with the company and see if they have anything for me.
Update: Got everything working. Didn’t change anything, just started working. I’m not sure whether to be ecstatic or pull out my hair. Whatever, it works.