Tuesday, October 2, 2012

Serial Communication with Bluetooth Module

With my temperature sensors working, the next step is to start getting data back to the PC/Mac/RPI (Raspberry PI).  Right now, data can be sent back via to ways:
  • RS232 via a standard USB serial port (and the supporting max232 circuit)
  • RS232 over Bluetooth
I reached one of the milestones in programming where I really needed to see real time debugging information.  The first step was to wire up a standard serial port and start dumping data to Putty (o'l standby).  Interestingly enough, on one of my shopping sprees I ran across a $9 Bluetooth serial module and I could not be happier.  I have scrapped my legacy MAX232 -> USB in favor of a Bluetooth module that accepts 3V-5V input (FYI, I think it outputs 3V signals).  It could not have been simpler to plug in the module, run GND, 5V and a line from the PIC.  A few minutes later, it is discovered on the PC and the serial port is added as COM6.  Nice.  Now that is one less cable between the PC and bread board.


The tricky part is that these devices default to 9600 8N1.  In reality, this is a very reasonable number for most applications.  However, I needed to drop it down to 4800bps due to the clock speed I am running.  The trick to that is that the BTM can only be configured via the terminal when the BT link is not active.  To do that requires connecting the BTM to the host via a TTL serial adapter.

Once communication is established, one item to watch out for is the firmware.  Some adapters come with HC06 (Linvor 1.5) and others come with HC05.  While, HC05 has more configuration options, I am not sure too many of them are useful.  To really dig into it, visit Byron's Blog.
Fortunately, there is a lot of information out there on configuring this BTM.  A quick Google for, "Bluetooth and linvor" will turn up a wealth of resources for customizing the BTM or you can download the manual.

Quick Start Guide:
  • Set Baud Rate - Sets the baud rate. Baud rate is set by an hexadecimal index from '1' to 'C'
    • Indexes are: 1:1200, 2:2400, 3:4800, 4:9600, 5:19200, 6:38400, 7:57600, 8:115200, 9:230400, A:460800, B:921600, C:1382400
    • Send: AT+BAUD<index>
    • Response: OK<baud rate>
  • Set Bluetooth Device Name - Sets Bluetooth Device Name
    • Send: AT+NAME<device name>
    • Response: OK<device name>
  • Set Bluetooth PIN Code - Sets the security code needed to connect to the device
    • Send: AT+PIN<4 digit code>
    • Response: OK<4 digit code>
  • Check Firmware Revision -Get The Firmware Revision Number
    • Send: AT+VERSION
    • Response: Linvor1.5





No comments:

Post a Comment