We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]
Rating:
Author: MIKROE
Last Updated: 2024-10-31
Package Version: 2.1.0.4
mikroSDK Library: 2.0.0.0
Category: 2.4 GHz Transceivers
Downloaded: 33 times
Not followed.
License: MIT license
Thyone-I Click is a compact add-on board for wireless communication in various devices like control systems, remote controls, and sensor nodes. This board features the WIRL-PRO2 Thyone-I (2.1.0.4021000) module from Würth Elektronik. It operates in the 2.4GHz license-free band, ensuring secure and reliable data transmission in both point-to-point and mesh configurations. It features versatile connectivity options with onboard and external antenna support, a data transmission rate of up to 2Mbit/s, and embedded security with hardware-accelerated encryption.
Do you want to subscribe in order to receive notifications regarding "Thyone-I Click" changes.
Do you want to unsubscribe in order to stop receiving notifications regarding "Thyone-I Click" changes.
Do you want to report abuse regarding "Thyone-I Click".
DOWNLOAD LINK | RELATED COMPILER | CONTAINS |
---|---|---|
5621_thyone_i_click.zip [561.62KB] | mikroC AI for ARM GCC for ARM Clang for ARM mikroC AI for PIC mikroC AI for PIC32 XC32 GCC for RISC-V Clang for RISC-V mikroC AI for dsPIC XC16 |
|
Thyone-I Click is a compact add-on board for wireless communication in various devices like control systems, remote controls, and sensor nodes. This board features the WIRL-PRO2 Thyone-I (2611011021000) module from Würth Elektronik. It operates in the 2.4GHz license-free band, ensuring secure and reliable data transmission in both point-to-point and mesh configurations. It features versatile connectivity options with onboard and external antenna support, a data transmission rate of up to 2Mbit/s, and embedded security with hardware-accelerated encryption.
We provide a library for the Thyone-I 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.
This library contains API for Thyone-I Click driver.
thyonei_cfg_setup
Config Object Initialization function.
void thyonei_cfg_setup ( thyonei_cfg_t *cfg );
thyonei_init
Initialization function.
err_t thyonei_init ( thyonei_t *ctx, thyonei_cfg_t *cfg );
thyonei_default_cfg
Click Default Configuration function.
void thyonei_default_cfg ( thyonei_t *ctx );
thyonei_get_req
This command can be used to set individual setting parameters in flash of Thyone-I Click board.
err_t thyonei_get_req ( thyonei_t *ctx, uint8_t settings_index, uint8_t *param_len, uint8_t *parameter );
thyonei_multicast_data_req
This command provides the multicast data transmission to a group of modules configured with the same MAC GROUP ADDRESS of Thyone-I Click board.
err_t thyonei_multicast_data_req ( thyonei_t *ctx, uint8_t message_len, uint8_t *message );
thyonei_unicast_data_req
This command provides the unicast data transmission to the configured MAC DESTINATION ADDRESS of Thyone-I Click board.
err_t thyonei_unicast_data_req ( thyonei_t *ctx, uint8_t message_len, uint8_t *message );
This example demonstrates the use of the Thyone-I Click board by sending and receiving data and displaying them on the USB UART.
The demo application is composed of two sections :
Initializes the driver and performs the Click default configuration and setting the MAC addresses and mode.
void application_init ( void )
{
log_cfg_t log_cfg; /**< Logger config object. */
thyonei_cfg_t thyonei_cfg; /**< Click config object. */
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
thyonei_cfg_setup( &thyonei_cfg );
THYONEI_MAP_MIKROBUS( thyonei_cfg, MIKROBUS_1 );
if ( UART_ERROR == thyonei_init( &thyonei, &thyonei_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
thyonei_default_cfg ( &thyonei );
thyonei_generic_read( &thyonei, app_buf, PROCESS_BUFFER_SIZE );
uint8_t tmp_data [ 4 ] = { 0 };
uint8_t len = 0;
thyonei_get_req( &thyonei, THYONEI_INDEX_SERIAL_NUMBER, &len, tmp_data );
log_printf( &logger, " Thyone-I serial number: 0x" );
for( uint8_t cnt = 0; cnt < len; cnt++ )
{
log_printf( &logger, "%.2X", ( uint16_t ) tmp_data[ cnt ] );
}
log_printf( &logger, "\r\n" );
log_printf( &logger, "= = = = = = = = = = = = = = =\r\n" );
log_printf( &logger, " Thyone-I factory reset request: \r\n" );
thyonei_send_command( &thyonei, THYONEI_CMD_FACTORY_RESET_REQ, 0, NULL );
thyonei_get_resp ( &thyonei, THYONEI_CMD_FACTORY_RESET_REQ );
log_printf( &logger, " Thyone-I Set Mode to normal mode: \r\n" );
tmp_data[ 0 ] = 0;
thyonei_set_req( &thyonei, THYONEI_INDEX_MODULE_MODE, 1, tmp_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_SET_REQ );
log_printf( &logger, " Thyone-I Set RF-Profile to 0: \r\n" );
tmp_data[ 0 ] = 0;
thyonei_set_req( &thyonei, THYONEI_INDEX_RF_PROFILE, 1, tmp_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_SET_REQ );
log_printf( &logger, " Thyone-I Set MAC Group ID to 0xAA: \r\n" );
tmp_data[ 0 ] = MAC_GROUP_ADDRESS;
thyonei_set_req( &thyonei, THYONEI_INDEX_MAC_GROUP_ID, 1, tmp_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_SET_REQ );
log_printf( &logger, " Thyone-I Set Source MAC address: \r\n" );
tmp_data[ 0 ] = ( uint8_t ) SOURCE_ADDRESS;
tmp_data[ 1 ] = ( uint8_t ) ( SOURCE_ADDRESS >> 8 );
tmp_data[ 2 ] = ( uint8_t ) ( SOURCE_ADDRESS >> 16 );
tmp_data[ 3 ] = ( uint8_t ) ( SOURCE_ADDRESS >> 24 );
thyonei_set_req( &thyonei, THYONEI_INDEX_MAC_SOURCE_ADDRESS, 4, tmp_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_SET_REQ );
log_printf( &logger, " Thyone-I Set Destination MAC address: \r\n" );
tmp_data[ 0 ] = ( uint8_t ) DESTINATION_ADDRESS;
tmp_data[ 1 ] = ( uint8_t ) ( DESTINATION_ADDRESS >> 8 );
tmp_data[ 2 ] = ( uint8_t ) ( DESTINATION_ADDRESS >> 16 );
tmp_data[ 3 ] = ( uint8_t ) ( DESTINATION_ADDRESS >> 24 );
thyonei_set_req( &thyonei, THYONEI_INDEX_MAC_DEST_ADDRESS, 4, tmp_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_SET_REQ );
log_info( &logger, " Application Task " );
}
Transmitter mode - Sending data to the devices within range ( thyonei_broadcast_data_req ), with same MAC group ( thyonei_multicast_data_req ) and with the selected MAC destination address ( thyonei_unicast_data_req ). Receiver mode - Reads and processes all incoming data and displays them on the USB UART.
void application_task ( void )
{
#if ( TRANSMITTER_MAC_ADDRESS == SOURCE_ADDRESS )
uint8_t message_data[ PROCESS_BUFFER_SIZE ] = { 0 };
#define BROADCAST_MESSAGE "Broadcast"
strcpy( message_data, MESSAGE );
strcat( message_data, BROADCAST_MESSAGE );
log_printf( &logger, " Thyone-I sending broadcast message: \r\n" );
thyonei_broadcast_data_req( &thyonei, strlen( message_data ), message_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_DATA_CNF );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
#define MULTICAST_MESSAGE "Multicast"
strcpy( message_data, MESSAGE );
strcat( message_data, MULTICAST_MESSAGE );
log_printf( &logger, " Thyone-I sending multicast message: \r\n" );
thyonei_multicast_data_req( &thyonei, strlen( message_data ), message_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_DATA_CNF );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
#define UNICAST_MESSAGE "Unicast"
strcpy( message_data, MESSAGE );
strcat( message_data, UNICAST_MESSAGE );
log_printf( &logger, " Thyone-I sending unicast message: \r\n" );
thyonei_unicast_data_req( &thyonei, strlen( message_data ), message_data );
thyonei_get_resp ( &thyonei, THYONEI_CMD_DATA_CNF );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
#else
thyonei_get_resp ( &thyonei, THYONEI_CMD_DATA_IND );
#endif
}
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:
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.