| Author | Matrix Ltd. | 
| Version | 2.1 | 
| Category | Wireless | 
Bluetooth v2 (EB024, Generic AT) component
Low level routines for controlling a standard AT Bluetooth interface. Also available in the form of the EB024 Bluetooth E-block. Uses an interrupt to receive characters from the UART and improve reliability, Must be used with a hardware channel.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Bluetooth_V2.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Bluetooth_V2.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Making a device discoverable
Example program to set up the Bluetooth module to be discoverable with a pair key. Any data received is then output onto the LCD component. You can connect to the Bluetooth device using a PC with Bluetooth connection and using software such as Flowcode 6, RealTerm or HyperTerminal. Alternatively you can connect using a smart phone running a terminal emulator app or via another embedded Bluetooth board.
 Bluetooth Discover
Script 1 contains the AT commands to setup the Bluetooth device to be discoverable with pair key "1234".
Bluetooth Discover
Script 1 contains the AT commands to setup the Bluetooth device to be discoverable with pair key "1234".
 
Searching for a device
Example program to scan for local discoverable Bluetooth devices. For each device found the MAC address is displayed on to the LCD.
 Bluetooth Inquiry
Bluetooth Inquiry
Connecting to a device
Example program to connect to a specific Bluetooth device address and send data to the device.
 Bluetooth Connect
The device MAC address is specified using the "CreateCommandString" and "SendCommand" macros.
Bluetooth Connect
The device MAC address is specified using the "CreateCommandString" and "SendCommand" macros.
 
Macro reference
|   | SetPairKey | 
| Sets the 4 digit Bluetooth pair key based on a string of numbers. e.g. "1234" Returns 0 to indicate success | 
|  - STRING | PairKey | 
| Key to use as the Pair key, e.g. "1234" or "0000" | 
|  - BYTE | Return | 
|   | ReceiveByte | 
| Receives a single data byte from the Bluetooth module. 0xFF signifies no data available. | 
|  - BYTE | Timeout | 
| Amount of time to wait in milliseconds 0=Wait forever | 
|  - BYTE | Return | 
|   | SendString | 
| Sends a string to the Bluetooth module. | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - VOID | Return | 
|   | SendScript | 
| Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | 
|  - BYTE | idx | 
|  | 
|  - BYTE | Return | 
|   | SendCommand | 
| Sends a command string to the Bluetooth module. 0 = Command sent ok, 255 = No Reply | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - BYTE | DiscardReply | 
| 0=Do not touch the reply, 1=Wait for reply and remove from buffer | 
|  - BYTE | Return | 
|   | ReadString | 
| Copies the incoming data from the data string array to a local string variable. | 
|  - BYTE | NumBytes | 
|  | 
|  - STRING | Return | 
|   | SaveSettings | 
| Saves the current settings to firmware using the AT&W command followed by the ATZ command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | SendByte | 
| Sends a single data byte out to the Bluetooth module. | 
|  - BYTE | Data | 
|  | 
|  - VOID | Return | 
|   | SetMode | 
| Sets the bluetooth mode to be discoverable and or connectable. Returns 0 for success. | 
|  - BYTE | Discoverable | 
| 0 = Not Discoverable, 1 = Discoverable | 
|  - BYTE | Connectable | 
| 0 = Not Connectable, 1 = Connectable | 
|  - BYTE | Return | 
|   | RestoreFactorySettings | 
| Restores the factory settings to firmware using the AT&F* command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | Initialise | 
| Sets up the Bluetooth module. Returns 0 for OK, 255 for no reply and 254 for command fail. | 
|  - BYTE | Return | 
Property reference
|   | Properties | 
|   | Bluetooth Settings | 
|   | String Array Size | 
| Amount of RAM memory to dedicate to receiving responses from the BT module. Default 40 | 
|   | Expect Echo | 
| Sets if we expect an echo of any data we send out to the GSM modem. Most AT type modems (e.g. GSM modules) will automatically echo back incoming data. | 
|   | Device Name | 
| Sets the friendly name of the Bluetooth device. | 
|   | Pair Key | 
|  | 
|   | Restore Defaults | 
| Is the Bluetooth module reset to factory settings at startup? | 
|   | Discoverable | 
| Is the Bluetooth module discoverable by default? | 
|   | Connectable | 
| Is the Bluetooth module connectable by default? | 
|   | Script Count | 
| Maximum number of scripts to store in the device's ROM | 
|   | Script1 | 
| ASCII based AT command data stored in ROM and used when sending script 1 | 
|   | Connections | 
|   | Channel | 
| UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. | 
|   | Baud Options | 
| Baud rate option selector | 
|   | Baud Rate | 
|  | 
|   | TX | 
| Pin to be used for Transmit data | 
|   | RX | 
| Pin to be used for Receive data | 
|   | Use Flow Control | 
| Flow Control (Handshake) enable or disable.     On: Two I/O pins are used to control the flow of data in and out of the device.     Off: Flow control is disabled. | 
|   | Reset Pin | 
|  | 
|   | Simulation | 
|   | Label | 
| Textual label shown on the component I/O flasher | 
|   | Scope Traces | 
| Selects if the scope traces are automatically added to the data recorder window or not.     Simulation - draws an approximation of the UART data onto the scope trace.     ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. | 
|   | Console Data | 
| Selects if the console data is automatically generated or not | 
|   | Console Columns | 
| Number of characters that can be displayed on a single line of the console. | 
|   | Data Source | 
| Simulation data source used to allow the component to connect to various remote devices     Nothing - Simulation data is ignored     COM port - Routes the communication data to and from a physical or virtual COM port      Injector - Routes the communication data via a data injector component on the Panel. | 
==Macro reference==
|   | SetPairKey | 
| Sets the 4 digit Bluetooth pair key based on a string of numbers. e.g. "1234" Returns 0 to indicate success | 
|  - STRING | PairKey | 
| Key to use as the Pair key, e.g. "1234" or "0000" | 
|  - BYTE | Return | 
|   | ReceiveByte | 
| Receives a single data byte from the Bluetooth module. 0xFF signifies no data available. | 
|  - BYTE | Timeout | 
| Amount of time to wait in milliseconds 0=Wait forever | 
|  - BYTE | Return | 
|   | SendString | 
| Sends a string to the Bluetooth module. | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - VOID | Return | 
|   | SendScript | 
| Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | 
|  - BYTE | idx | 
|  | 
|  - BYTE | Return | 
|   | SendCommand | 
| Sends a command string to the Bluetooth module. 0 = Command sent ok, 255 = No Reply | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - BYTE | DiscardReply | 
| 0=Do not touch the reply, 1=Wait for reply and remove from buffer | 
|  - BYTE | Return | 
|   | ReadString | 
| Copies the incoming data from the data string array to a local string variable. | 
|  - BYTE | NumBytes | 
|  | 
|  - STRING | Return | 
|   | SaveSettings | 
| Saves the current settings to firmware using the AT&W command followed by the ATZ command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | SendByte | 
| Sends a single data byte out to the Bluetooth module. | 
|  - BYTE | Data | 
|  | 
|  - VOID | Return | 
|   | SetMode | 
| Sets the bluetooth mode to be discoverable and or connectable. Returns 0 for success. | 
|  - BYTE | Discoverable | 
| 0 = Not Discoverable, 1 = Discoverable | 
|  - BYTE | Connectable | 
| 0 = Not Connectable, 1 = Connectable | 
|  - BYTE | Return | 
|   | RestoreFactorySettings | 
| Restores the factory settings to firmware using the AT&F* command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | Initialise | 
| Sets up the Bluetooth module. Returns 0 for OK, 255 for no reply and 254 for command fail. | 
|  - BYTE | Return | 
Property reference
|   | Properties | 
|   | Bluetooth Settings | 
|   | String Array Size | 
| Amount of RAM memory to dedicate to receiving responses from the BT module. Default 40 | 
|   | Expect Echo | 
| Sets if we expect an echo of any data we send out to the GSM modem. Most AT type modems (e.g. GSM modules) will automatically echo back incoming data. | 
|   | Device Name | 
| Sets the friendly name of the Bluetooth device. | 
|   | Pair Key | 
|  | 
|   | Restore Defaults | 
| Is the Bluetooth module reset to factory settings at startup? | 
|   | Discoverable | 
| Is the Bluetooth module discoverable by default? | 
|   | Connectable | 
| Is the Bluetooth module connectable by default? | 
|   | Script Count | 
| Maximum number of scripts to store in the device's ROM | 
|   | Script1 | 
| ASCII based AT command data stored in ROM and used when sending script 1 | 
|   | Connections | 
|   | Channel | 
| UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. | 
|   | Baud Options | 
| Baud rate option selector | 
|   | Baud Rate | 
|  | 
|   | TX | 
| Pin to be used for Transmit data | 
|   | RX | 
| Pin to be used for Receive data | 
|   | Use Flow Control | 
| Flow Control (Handshake) enable or disable.     On: Two I/O pins are used to control the flow of data in and out of the device.     Off: Flow control is disabled. | 
|   | Reset Pin | 
|  | 
|   | Simulation | 
|   | Label | 
| Textual label shown on the component I/O flasher | 
|   | Scope Traces | 
| Selects if the scope traces are automatically added to the data recorder window or not.     Simulation - draws an approximation of the UART data onto the scope trace.     ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. | 
|   | Console Data | 
| Selects if the console data is automatically generated or not | 
|   | Console Columns | 
| Number of characters that can be displayed on a single line of the console. | 
|   | Data Source | 
| Simulation data source used to allow the component to connect to various remote devices     Nothing - Simulation data is ignored     COM port - Routes the communication data to and from a physical or virtual COM port      Injector - Routes the communication data via a data injector component on the Panel. | 
==Macro reference==
|   | SetPairKey | 
| Sets the 4 digit Bluetooth pair key based on a string of numbers. e.g. "1234" Returns 0 to indicate success | 
|  - STRING | PairKey | 
| Key to use as the Pair key, e.g. "1234" or "0000" | 
|  - BYTE | Return | 
|   | ReceiveByte | 
| Receives a single data byte from the Bluetooth module. 0xFF signifies no data available. | 
|  - BYTE | Timeout | 
| Amount of time to wait in milliseconds 0=Wait forever | 
|  - BYTE | Return | 
|   | SendString | 
| Sends a string to the Bluetooth module. | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - VOID | Return | 
|   | SendScript | 
| Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | 
|  - BYTE | idx | 
|  | 
|  - BYTE | Return | 
|   | SendCommand | 
| Sends a command string to the Bluetooth module. 0 = Command sent ok, 255 = No Reply | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - BYTE | DiscardReply | 
| 0=Do not touch the reply, 1=Wait for reply and remove from buffer | 
|  - BYTE | Return | 
|   | ReadString | 
| Copies the incoming data from the data string array to a local string variable. | 
|  - BYTE | NumBytes | 
|  | 
|  - STRING | Return | 
|   | SaveSettings | 
| Saves the current settings to firmware using the AT&W command followed by the ATZ command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | SendByte | 
| Sends a single data byte out to the Bluetooth module. | 
|  - BYTE | Data | 
|  | 
|  - VOID | Return | 
|   | SetMode | 
| Sets the bluetooth mode to be discoverable and or connectable. Returns 0 for success. | 
|  - BYTE | Discoverable | 
| 0 = Not Discoverable, 1 = Discoverable | 
|  - BYTE | Connectable | 
| 0 = Not Connectable, 1 = Connectable | 
|  - BYTE | Return | 
|   | RestoreFactorySettings | 
| Restores the factory settings to firmware using the AT&F* command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | Initialise | 
| Sets up the Bluetooth module. Returns 0 for OK, 255 for no reply and 254 for command fail. | 
|  - BYTE | Return | 
Property reference
|   | Properties | 
|   | Bluetooth Settings | 
|   | String Array Size | 
| Amount of RAM memory to dedicate to receiving responses from the BT module. Default 40 | 
|   | Expect Echo | 
| Sets if we expect an echo of any data we send out to the GSM modem. Most AT type modems (e.g. GSM modules) will automatically echo back incoming data. | 
|   | Device Name | 
| Sets the friendly name of the Bluetooth device. | 
|   | Pair Key | 
|  | 
|   | Restore Defaults | 
| Is the Bluetooth module reset to factory settings at startup? | 
|   | Discoverable | 
| Is the Bluetooth module discoverable by default? | 
|   | Connectable | 
| Is the Bluetooth module connectable by default? | 
|   | Script Count | 
| Maximum number of scripts to store in the device's ROM | 
|   | Script1 | 
| ASCII based AT command data stored in ROM and used when sending script 1 | 
|   | Connections | 
|   | Channel | 
| UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. | 
|   | Baud Options | 
| Baud rate option selector | 
|   | Baud Rate | 
|  | 
|   | TX | 
| Pin to be used for Transmit data | 
|   | RX | 
| Pin to be used for Receive data | 
|   | Use Flow Control | 
| Flow Control (Handshake) enable or disable.     On: Two I/O pins are used to control the flow of data in and out of the device.     Off: Flow control is disabled. | 
|   | Reset Pin | 
|  | 
|   | Simulation | 
|   | Label | 
| Textual label shown on the component I/O flasher | 
|   | Scope Traces | 
| Selects if the scope traces are automatically added to the data recorder window or not.     Simulation - draws an approximation of the UART data onto the scope trace.     ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. | 
|   | Console Data | 
| Selects if the console data is automatically generated or not | 
|   | Console Columns | 
| Number of characters that can be displayed on a single line of the console. | 
|   | Data Source | 
| Simulation data source used to allow the component to connect to various remote devices     Nothing - Simulation data is ignored     COM port - Routes the communication data to and from a physical or virtual COM port      Injector - Routes the communication data via a data injector component on the Panel. | 
==Macro reference==
|   | SetPairKey | 
| Sets the 4 digit Bluetooth pair key based on a string of numbers. e.g. "1234" Returns 0 to indicate success | 
|  - STRING | PairKey | 
| Key to use as the Pair key, e.g. "1234" or "0000" | 
|  - BYTE | Return | 
|   | ReceiveByte | 
| Receives a single data byte from the Bluetooth module. 0xFF signifies no data available. | 
|  - BYTE | Timeout | 
| Amount of time to wait in milliseconds 0=Wait forever | 
|  - BYTE | Return | 
|   | SendString | 
| Sends a string to the Bluetooth module. | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - VOID | Return | 
|   | SendScript | 
| Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | 
|  - BYTE | idx | 
|  | 
|  - BYTE | Return | 
|   | SendCommand | 
| Sends a command string to the Bluetooth module. 0 = Command sent ok, 255 = No Reply | 
|  - STRING | Command | 
|  | 
|  - BYTE | SendCR | 
|  | 
|  - BYTE | DiscardReply | 
| 0=Do not touch the reply, 1=Wait for reply and remove from buffer | 
|  - BYTE | Return | 
|   | ReadString | 
| Copies the incoming data from the data string array to a local string variable. | 
|  - BYTE | NumBytes | 
|  | 
|  - STRING | Return | 
|   | SaveSettings | 
| Saves the current settings to firmware using the AT&W command followed by the ATZ command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | SendByte | 
| Sends a single data byte out to the Bluetooth module. | 
|  - BYTE | Data | 
|  | 
|  - VOID | Return | 
|   | SetMode | 
| Sets the bluetooth mode to be discoverable and or connectable. Returns 0 for success. | 
|  - BYTE | Discoverable | 
| 0 = Not Discoverable, 1 = Discoverable | 
|  - BYTE | Connectable | 
| 0 = Not Connectable, 1 = Connectable | 
|  - BYTE | Return | 
|   | RestoreFactorySettings | 
| Restores the factory settings to firmware using the AT&F* command. Returns 0 to indicate success | 
|  - BYTE | Return | 
|   | Initialise | 
| Sets up the Bluetooth module. Returns 0 for OK, 255 for no reply and 254 for command fail. | 
|  - BYTE | Return | 
Property reference
|   | Properties | 
|   | Bluetooth Settings | 
|   | String Array Size | 
| Amount of RAM memory to dedicate to receiving responses from the BT module. Default 40 | 
|   | Expect Echo | 
| Sets if we expect an echo of any data we send out to the GSM modem. Most AT type modems (e.g. GSM modules) will automatically echo back incoming data. | 
|   | Device Name | 
| Sets the friendly name of the Bluetooth device. | 
|   | Pair Key | 
|  | 
|   | Restore Defaults | 
| Is the Bluetooth module reset to factory settings at startup? | 
|   | Discoverable | 
| Is the Bluetooth module discoverable by default? | 
|   | Connectable | 
| Is the Bluetooth module connectable by default? | 
|   | Script Count | 
| Maximum number of scripts to store in the device's ROM | 
|   | Script1 | 
| ASCII based AT command data stored in ROM and used when sending script 1 | 
|   | Connections | 
|   | Channel | 
| UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. | 
|   | Baud Options | 
| Baud rate option selector | 
|   | Baud Rate | 
|  | 
|   | TX | 
| Pin to be used for Transmit data | 
|   | RX | 
| Pin to be used for Receive data | 
|   | Use Flow Control | 
| Flow Control (Handshake) enable or disable.     On: Two I/O pins are used to control the flow of data in and out of the device.     Off: Flow control is disabled. | 
|   | Reset Pin | 
|  | 
|   | Simulation | 
|   | Label | 
| Textual label shown on the component I/O flasher | 
|   | Scope Traces | 
| Selects if the scope traces are automatically added to the data recorder window or not.     Simulation - draws an approximation of the UART data onto the scope trace.     ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. | 
|   | Console Data | 
| Selects if the console data is automatically generated or not | 
|   | Console Columns | 
| Number of characters that can be displayed on a single line of the console. | 
|   | Data Source | 
| Simulation data source used to allow the component to connect to various remote devices     Nothing - Simulation data is ignored     COM port - Routes the communication data to and from a physical or virtual COM port      Injector - Routes the communication data via a data injector component on the Panel. |