bletx  2.0.0.0
Main Page

BLE TX click

BLE TX Click is a compact add-on board that contains a low-energy Bluetooth transmitter. This board features the AK1595, a Bluetooth 5.2 transmitter with incorporated proprietary algorithm software from AKM Semiconductor. The AK1595 transmitter simplifies wireless connectivity to a system with no need to develop complicated, proprietary microcontroller code. Bluetooth Low Energy compliant advertising transmission can be achieved by simply configuring the transmission power, data, and transmission start-trigger via the UART or I2C interface.

click Product page


Click library

  • Author : Nenad Filipovic
  • Date : Mar 2021.
  • Type : I2C type

Software Support

We provide a library for the BleTx Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.

Package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on mikroE github account.

Library Description

This library contains API for BleTx Click driver.

Standard key functions :

Example key functions :

Example Description

This library contains API for the Ble TX Click driver. This example processes data from Ble TX Click, Ble TX Click Bluetooth® Low Energy compliant advertising transmission can be achieved by simply configuring the transmission power, data, and transmission - start trigger.

The demo application is composed of two sections :

Application Init

Initialization of I2C module and log UART. Initializes driver and set performs the default configuration. Configure Bluetooth Low Energy Beacons to transmit so-called advertising frames. Configuration of the Eddystone URI, UID, or TLM Bluetooth Low Energy Beacons profile task depends on uncommented code. Eddystone ( URI ) : broadcasts a URL of at most 15 characters that redirects to a website that is secured using SSL. Eddystone ( UID ) : broadcasts an identifying code that allows apps to retrieve information from app servers. Eddystone ( TLM ) : broadcasts information about the beacon, include battery level, sensor data, or other relevant information to beacon administrators.

void application_init ( void ) {
log_cfg_t log_cfg;
bletx_cfg_t bletx_cfg;
// Logger initialization.
LOG_MAP_USB_UART( log_cfg );
log_cfg.level = LOG_LEVEL_DEBUG;
log_cfg.baud = 115200;
log_init( &logger, &log_cfg );
log_printf( &logger, "\r\n" );
log_info( &logger, " Application Init " );
// Click initialization.
bletx_cfg_setup( &bletx_cfg );
BLETX_MAP_MIKROBUS( bletx_cfg, MIKROBUS_1 );
err_t init_flag = bletx_init( &bletx, &bletx_cfg );
if ( init_flag == I2C_MASTER_ERROR ) {
log_error( &logger, " Application Init Error. " );
log_info( &logger, " Please, run program again... " );
for ( ; ; );
}
bletx_default_cfg ( &bletx );
log_info( &logger, " Application Task " );
Delay_ms( 10 );
adv_cfg.crc_enb = 0x80;
adv_cfg.uuid[ 0 ] = 0x11;
adv_cfg.uuid[ 1 ] = 0x22;
adv_cfg.uuid[ 2 ] = 0x33;
adv_cfg.uuid[ 3 ] = 0x44;
adv_cfg.uuid[ 4 ] = 0x55;
adv_cfg.uuid[ 5 ] = 0x66;
Delay_ms( 100 );
#ifdef URI
adv_data.advdata_url[ 0 ] = 'm';
adv_data.advdata_url[ 1 ] = 'i';
adv_data.advdata_url[ 2 ] = 'k';
adv_data.advdata_url[ 3 ] = 'r';
adv_data.advdata_url[ 4 ] = 'o';
adv_data.advdata_url[ 5 ] = 'e';
#endif
#ifdef UID
adv_data.name_space_id[ 0 ] = 0x01;
adv_data.name_space_id[ 1 ] = 0x02;
adv_data.name_space_id[ 2 ] = 0x03;
adv_data.name_space_id[ 3 ] = 0x04;
adv_data.name_space_id[ 4 ] = 0x05;
adv_data.name_space_id[ 5 ] = 0x06;
adv_data.name_space_id[ 6 ] = 0x07;
adv_data.name_space_id[ 7 ] = 0x08;
adv_data.name_space_id[ 8 ] = 0x09;
adv_data.name_space_id[ 9 ] = 0x0A;
adv_data.instance_id[ 0 ] = 0x01;
adv_data.instance_id[ 1 ] = 0x23;
adv_data.instance_id[ 2 ] = 0x45;
adv_data.instance_id[ 3 ] = 0x67;
adv_data.instance_id[ 4 ] = 0x89;
adv_data.instance_id[ 5 ] = 0xAB;
#endif
#ifdef TLM
adv_data.tlm_version = 0; // TLM version
adv_data.pdu_count = 11223344;
#endif
Delay_ms( 100 );
}

Application Task

This is an example that shows the use of a Ble TX click board™. In this example, the application turns the selected advertising frames ON and OFF for a period of 10 seconds.

void application_task ( void ) {
log_printf( &logger, ">>>\tStart Advertising \r\n" );
Delay_ms( 10000 );
log_printf( &logger, ">>>\tStop Advertising \r\n" );
Delay_ms( 10000 );
}

Note

For scanning BLE TX click board™ BLE Scanner is a recommended Android application and you can find it at the link: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner

The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on mikroE github account.

Other mikroE Libraries used in the example:

  • MikroSDK.Board
  • MikroSDK.Log
  • Click.BleTx

Additional notes and informations

Depending on the development board you are using, you may need USB UART click, USB UART 2 Click or RS232 Click to connect to your PC, for development systems with no UART to USB interface available on the board. UART terminal is available in all Mikroelektronika compilers.


bletx_adv_cfg_t
BLE TX Click advertising settings object.
Definition: bletx.h:327
bletx_eddystone_data_t::spec_data
uint8_t spec_data
Definition: bletx.h:373
bletx_adv_cfg_t::white_enb
uint8_t white_enb
Definition: bletx.h:339
bletx_eddystone_data_t::name_space_id
uint8_t name_space_id[10]
Definition: bletx.h:376
bletx_create_eddystone_uri
err_t bletx_create_eddystone_uri(bletx_t *ctx, bletx_eddystone_data_t adv_data)
BLE TX create Eddystone™ URI data packet function.
bletx_eddystone_data_t::domain
uint8_t domain
Definition: bletx.h:375
BLETX_CHARACTER_CODES_DOT_COM
#define BLETX_CHARACTER_CODES_DOT_COM
BLE TX character codes description setting.
Definition: bletx.h:205
bletx_start_advertising
err_t bletx_start_advertising(bletx_t *ctx)
BLE TX start advertising function.
TX_POWER_0_dBm
Definition: bletx.h:413
bletx_adv_cfg_t::uuid
uint8_t uuid[6]
Definition: bletx.h:341
bletx_eddystone_data_t::length_of_service_list
uint8_t length_of_service_list
Definition: bletx.h:366
bletx_eddystone_data_t
BLE TX Click Eddystone™ data packet.
Definition: bletx.h:364
bletx_eddystone_data_t::frame_type_url
uint8_t frame_type_url
Definition: bletx.h:371
bletx_eddystone_data_t::pdu_count
uint32_t pdu_count
Definition: bletx.h:381
bletx_adv_cfg_t::advdelay_enb
uint8_t advdelay_enb
Definition: bletx.h:336
bletx_eddystone_data_t::battery_voltage
uint16_t battery_voltage
Definition: bletx.h:379
bletx_adv_cfg_t::adv_ch_2_frequency
uint8_t adv_ch_2_frequency
Definition: bletx.h:330
bletx_adv_cfg_t::tx_output_power
uint8_t tx_output_power
Definition: bletx.h:332
application_task
void application_task(void)
Definition: main.c:178
BLETX_TX_POWER_LVL_MODE_LOW
#define BLETX_TX_POWER_LVL_MODE_LOW
Definition: bletx.h:176
bletx_adv_cfg_t::adv_ch_3_frequency
uint8_t adv_ch_3_frequency
Definition: bletx.h:331
bletx_eddystone_data_t::beacon_temperature
float beacon_temperature
Definition: bletx.h:380
BLETX_EDDYSTONE_SPEC_DATA_HTTP_WWW
#define BLETX_EDDYSTONE_SPEC_DATA_HTTP_WWW
BLE TX Eddystone spec data description setting.
Definition: bletx.h:217
bletx_eddystone_data_t::param_service_list
uint8_t param_service_list
Definition: bletx.h:367
bletx_set_configuration
err_t bletx_set_configuration(bletx_t *ctx, bletx_adv_cfg_t adv_cfg)
BLE TX configuration setting function.
bletx_adv_cfg_t::txdata_cw
uint8_t txdata_cw
Definition: bletx.h:334
BLETX_EDDYSTONE_FRAME_TYPE_UID
#define BLETX_EDDYSTONE_FRAME_TYPE_UID
BLE TX Eddystone frame type description setting.
Definition: bletx.h:235
ADVCH3_39_Ch_2480_MHz
Definition: bletx.h:402
bletx_cfg_t
BLE TX Click configuration object.
Definition: bletx.h:308
bletx_eddystone_data_t::advdata_url
uint8_t advdata_url[32]
Definition: bletx.h:374
BLETX_EDDYSTONE_SERVICE_DATA_TYPE_VALUE
#define BLETX_EDDYSTONE_SERVICE_DATA_TYPE_VALUE
Definition: bletx.h:229
adv_data
bletx_eddystone_data_t adv_data
Definition: main.c:54
bletx_init
err_t bletx_init(bletx_t *ctx, bletx_cfg_t *cfg)
BLE TX initialization function.
bletx_adv_cfg_t::txdata_loop
uint8_t txdata_loop
Definition: bletx.h:333
bletx_adv_cfg_t::crc_enb
uint8_t crc_enb
Definition: bletx.h:338
BLETX_EDDYSTONE_SERVICE_UUID
#define BLETX_EDDYSTONE_SERVICE_UUID
BLE TX Eddystone service UUID description setting.
Definition: bletx.h:228
bletx_eddystone_data_t::instance_id
uint8_t instance_id[6]
Definition: bletx.h:377
bletx_adv_cfg_t::adv_ch_1_frequency
uint8_t adv_ch_1_frequency
Definition: bletx.h:329
bletx_create_eddystone_uid
err_t bletx_create_eddystone_uid(bletx_t *ctx, bletx_eddystone_data_t adv_data)
BLE TX create Eddystone™ UID data packet function.
bletx_adv_cfg_t::eventnum
uint8_t eventnum
Definition: bletx.h:335
BLETX_MAP_MIKROBUS
#define BLETX_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: bletx.h:270
bletx_adv_cfg_t::pdu_len
uint8_t pdu_len
Definition: bletx.h:340
bletx_create_eddystone_tlm
err_t bletx_create_eddystone_tlm(bletx_t *ctx, bletx_eddystone_data_t adv_data)
BLE TX create Eddystone™ TLM data packet function.
BLETX_EDDYSTONE_FRAME_TYPE_TLM
#define BLETX_EDDYSTONE_FRAME_TYPE_TLM
Definition: bletx.h:237
BLETX_EDDYSTONE_SPEC_DATA_TLM
#define BLETX_EDDYSTONE_SPEC_DATA_TLM
Definition: bletx.h:222
application_init
void application_init(void)
Definition: main.c:56
ADVCH2_38_Ch_2426_MHz
Definition: bletx.h:397
bletx_adv_cfg_t::avdintvl_interval_ms
uint16_t avdintvl_interval_ms
Definition: bletx.h:337
bletx_eddystone_data_t::tlm_version
uint8_t tlm_version
Definition: bletx.h:378
adv_cfg
bletx_adv_cfg_t adv_cfg
Definition: main.c:53
bletx_eddystone_data_t::length_of_service_data
uint8_t length_of_service_data
Definition: bletx.h:369
bletx_cfg_setup
void bletx_cfg_setup(bletx_cfg_t *cfg)
BLE TX configuration object setup function.
bletx_t
BLE TX Click context object.
Definition: bletx.h:285
bletx_eddystone_data_t::power
uint8_t power
Definition: bletx.h:372
BLETX_EDDYSTONE_FRAME_TYPE_URL
#define BLETX_EDDYSTONE_FRAME_TYPE_URL
Definition: bletx.h:236
bletx_eddystone_data_t::service_data
uint8_t service_data
Definition: bletx.h:370
bletx_eddystone_data_t::eddystone_id
uint16_t eddystone_id
Definition: bletx.h:368
ADVCH1_37_Ch_2402_MHz
Definition: bletx.h:392
bletx_stop_advertising
err_t bletx_stop_advertising(bletx_t *ctx)
BLE TX stop advertising function.
bletx_default_cfg
err_t bletx_default_cfg(bletx_t *ctx)
BLE TX default configuration function.