I am trying to connect a Bluetooth module (BTM511) with my Arduino.

In order to see that I can actually communicate with the module, I first try to just send AT<cr> to the module, where I should get an <cr,lf>OK<cr,lf> from the module, using the signal generation function of my Scanalogic2 analyzer. Pin 1 (in output mode) of the analyzer is connected to the module's RX, pin 4 (in input mode) connected to the module's TX.

Now, when I send the AT command, I never get a reply back. The TX line stays LOW all the time. I DO get it work when I start the analyzer, setting it to wait sending for a logic change on Pin 4 and then, while it is waiting, connecting Pin 3 (which is in input mode) to the TX as well. Then somehow the TX line goes HIGH, and the module reports back with the OK signal.

I hope the situation is clear. Could anybody explain to me what might be happening here, and what I am doing wrong?

  • \$\begingroup\$ Have you got the right baud rate etc? Have you got the TX/RX the right way round? \$\endgroup\$ – pjc50 Jul 31 '12 at 13:44
  • \$\begingroup\$ It sounds like something you are doing wrong with the LA - can you post an image of exactly what you are sending? \$\endgroup\$ – Oli Glaser Jul 31 '12 at 14:56
  • \$\begingroup\$ baudrate is 9600 8n1, the default for the Bluetooth module. I made a screen shot of when both pin 3 and 4 are connected ( imageshack.us/photo/my-images/820/sendgood.png) and when only one input pin is connected img338.imageshack.us/img338/6272/sendbad.png. The signal I sent is also shown there. \$\endgroup\$ – Arvest Jul 31 '12 at 15:13
  • \$\begingroup\$ i see that in the second screen shot it looks as if the third byte <CR> is not correct, but that was not the case when I tried it. It is indeed a 0x0D as indicated in the left pane. \$\endgroup\$ – Arvest Jul 31 '12 at 15:50

The Bluetooth module seems to be in some sort of low-power mode, where it powers down the UART circuit when its RX pin is LOW. Because the LA doesn't keep the RX of the module HIGH, the module would shut down its UART.

It takes a short while after the RX is HIGH for the UART to start (about 0.7 seconds from my measurements), shown by TX getting HIGH. So after setting the RX to HIGH, you have to wait before sending any commands. (couldn't find this anywhere in the datasheet though..).

Short delay before the TX becomes active.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.